BookStack\Http\Controllers\UserController::update PHP Method

update() public method

Update the specified user in storage.
public update ( Illuminate\Http\Request $request, integer $id ) : Illuminate\Http\Response
$request Illuminate\Http\Request
$id integer
return Illuminate\Http\Response
    public function update(Request $request, $id)
    {
        $this->preventAccessForDemoUsers();
        $this->checkPermissionOr('users-manage', function () use($id) {
            return $this->currentUser->id == $id;
        });
        $this->validate($request, ['name' => 'min:2', 'email' => 'min:2|email|unique:users,email,' . $id, 'password' => 'min:5|required_with:password_confirm', 'password-confirm' => 'same:password|required_with:password'], ['password-confirm.required_with' => 'Password confirmation required']);
        $user = $this->user->findOrFail($id);
        $user->fill($request->all());
        // Role updates
        if (userCan('users-manage') && $request->has('roles')) {
            $roles = $request->get('roles');
            $user->roles()->sync($roles);
        }
        // Password updates
        if ($request->has('password') && $request->get('password') != '') {
            $password = $request->get('password');
            $user->password = bcrypt($password);
        }
        // External auth id updates
        if ($this->currentUser->can('users-manage') && $request->has('external_auth_id')) {
            $user->external_auth_id = $request->get('external_auth_id');
        }
        $user->save();
        session()->flash('success', 'User successfully updated');
        $redirectUrl = userCan('users-manage') ? '/settings/users' : '/settings/users/' . $user->id;
        return redirect($redirectUrl);
    }