예제 #1
0
 /**
  * Update user's password.
  *
  * @author Casper Rasmussen <*****@*****.**>
  *
  * @param  \Nodes\Backend\Models\User\Validation\UserValidator $userValidator
  * @return \Illuminate\Http\RedirectResponse
  */
 public function updatePassword(UserValidator $userValidator)
 {
     // Retrieve posted data
     $data = Request::all();
     // Retrieve user to update
     $user = $this->userRepository->getById($data['id']);
     if (empty($user) || $user->id != backend_user()->id) {
         return redirect()->route('nodes.backend.users')->with('error', 'User was not found');
     }
     // Validate user
     if (!$userValidator->with($data)->group('update-password')->validate()) {
         return redirect()->back()->withInput()->with(['error' => $userValidator->errorsBag()]);
     }
     try {
         // Update user's password
         $this->userRepository->updateUser($user, array_merge($data, ['change_password' => false]));
         return redirect()->route('nodes.backend.dashboard')->with('success', 'Password is updated');
     } catch (Exception $e) {
         return redirect()->back()->withInput()->with('error', 'Could not update password');
     }
 }