userRepository = $userRepository; } /** * Display form for editing user * * @param User|null $user * * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function getEditUser(User $user = null) { // when no user specified, lets assume we want to edit "me" if (!$user->exists()) { $user = Auth::user(); } $states = UserStates::getWithTranslations(); $roles = UserRoles::getWithTranslations(); return view('admin.userManagement.edit', [ 'user' => $user, 'states' => $states, 'roles' => $roles ]); } /** * Edit user - store information * * @param EditUserRequest $request * @param User $user * * @return \Illuminate\Http\RedirectResponse * @internal param $id */ public function postEdit(EditUserRequest $request, User $user) { $loggedUser = Auth::user(); // non-admin user is trying to edit someone else if ($loggedUser->role != User::ROLE_ADMIN && $user->id != $loggedUser->id) { return redirect() ->back() ->with('error', trans('auth.accessDenied')); } $this->userRepository->update($user, $request->all()); // fire event about editing user Event::fire(new EditUserEvent($user)); return redirect() ->back() ->with('success', trans('admin/userManagement.userSuccessfullyEdited')); } }