/** * Changes user password * * @param $user_id = $this->session->id * @param $current_password * @param $new_password * @param $new_password_confirmation * * @return boolean */ public function changePassword($user_id = FALSE, $current_password, $new_password, $new_password_confirmation) { if ( ! $user_id) $user_id = $this->session->id; // check new password if($new_password !== $new_password_confirmation) show_error(_('Les mots de passe ne correspondent pas')); if( ! empty($errors = $this->checkPasswordStrenght($new_password))) show_error($errors); // check current password $check = parent::checkUserPassword($user_id, $current_password, 'id'); if( ! $check) show_error(_('Le mot de passe n\'est pas valide')); $hash = password_hash($new_password, PASSWORD_DEFAULT); $data = array( 'password' => $hash ); $this->db->where('id', $user_id); $this->db->update('users', $data); return TRUE; }