X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/3acea12f1c0013be4f1e3994cae2ea662e43bb4e..refs/pull/4191/head:/app/Http/Controllers/Auth/UserInviteController.php diff --git a/app/Http/Controllers/Auth/UserInviteController.php b/app/Http/Controllers/Auth/UserInviteController.php index 5d9373f45..5b3bba6ff 100644 --- a/app/Http/Controllers/Auth/UserInviteController.php +++ b/app/Http/Controllers/Auth/UserInviteController.php @@ -8,35 +8,32 @@ use BookStack\Exceptions\UserTokenExpiredException; use BookStack\Exceptions\UserTokenNotFoundException; use BookStack\Http\Controllers\Controller; use Exception; -use Illuminate\Contracts\View\Factory; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Routing\Redirector; -use Illuminate\View\View; +use Illuminate\Support\Facades\Hash; +use Illuminate\Validation\Rules\Password; class UserInviteController extends Controller { - protected $inviteService; - protected $userRepo; + protected UserInviteService $inviteService; + protected UserRepo $userRepo; /** * Create a new controller instance. - * - * @param UserInviteService $inviteService - * @param UserRepo $userRepo */ public function __construct(UserInviteService $inviteService, UserRepo $userRepo) { + $this->middleware('guest'); + $this->middleware('guard:standard'); + $this->inviteService = $inviteService; $this->userRepo = $userRepo; - $this->middleware('guest'); - parent::__construct(); } /** * Show the page for the user to set the password for their account. - * @param string $token - * @return Factory|View|RedirectResponse + * * @throws Exception */ public function showSetPassword(string $token) @@ -54,15 +51,13 @@ class UserInviteController extends Controller /** * Sets the password for an invited user and then grants them access. - * @param string $token - * @param Request $request - * @return RedirectResponse|Redirector + * * @throws Exception */ - public function setPassword(string $token, Request $request) + public function setPassword(Request $request, string $token) { $this->validate($request, [ - 'password' => 'required|min:6' + 'password' => ['required', Password::default()], ]); try { @@ -72,22 +67,22 @@ class UserInviteController extends Controller } $user = $this->userRepo->getById($userId); - $user->password = bcrypt($request->get('password')); + $user->password = Hash::make($request->get('password')); $user->email_confirmed = true; $user->save(); - auth()->login($user); - session()->flash('success', trans('auth.user_invite_success', ['appName' => setting('app-name')])); $this->inviteService->deleteByUser($user); + $this->showSuccessNotification(trans('auth.user_invite_success_login', ['appName' => setting('app-name')])); - return redirect('/'); + return redirect('/login'); } /** * Check and validate the exception thrown when checking an invite token. - * @param Exception $exception - * @return RedirectResponse|Redirector + * * @throws Exception + * + * @return RedirectResponse|Redirector */ protected function handleTokenException(Exception $exception) { @@ -96,11 +91,11 @@ class UserInviteController extends Controller } if ($exception instanceof UserTokenExpiredException) { - session()->flash('error', trans('errors.invite_token_expired')); + $this->showErrorNotification(trans('errors.invite_token_expired')); + return redirect('/password/email'); } throw $exception; } - }