Example #1
0
 /**
  * Process reset password
  *
  * @param array $requestParams
  */
 private function processResetPassword($requestParams)
 {
     $validateData = Input::only('new_password', 'new_password_confirmation');
     // Find user by user ID
     $user = User::findByUserId($requestParams['id']);
     if (empty($user) || $user->forgot_pw_hash != $requestParams['hash']) {
         Session::flash('resetpw-error', trans('message.user.error.invalid_hash'));
         return Redirect::route('resetpw', $requestParams);
     }
     // Validate submitted data
     if (!$user->validate($validateData)) {
         return Redirect::route('resetpw', $requestParams)->withInput()->withErrors($user->errors());
     }
     // Change password for user
     if (!$user->changePassword($validateData['new_password'], true)) {
         Session::flash('resetpw-error', trans('message.user.error.reset_password_failed'));
         return Redirect::route('resetpw', $requestParams)->withInput();
     }
     // Auto login user after reset password
     Auth::user()->login($user);
     return Redirect::route('dashboard');
 }