Exemplo n.º 1
0
    /**
     * 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;
    }