X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/85db812feaae5f36ea6214931cec4adb67a9cb39..refs/pull/2890/head:/app/Http/Controllers/Auth/UserInviteController.php diff --git a/app/Http/Controllers/Auth/UserInviteController.php b/app/Http/Controllers/Auth/UserInviteController.php index ab7452248..bd1912b0b 100644 --- a/app/Http/Controllers/Auth/UserInviteController.php +++ b/app/Http/Controllers/Auth/UserInviteController.php @@ -2,14 +2,12 @@ namespace BookStack\Http\Controllers\Auth; -use BookStack\Actions\ActivityType; +use BookStack\Auth\Access\LoginService; use BookStack\Auth\Access\UserInviteService; use BookStack\Auth\UserRepo; use BookStack\Exceptions\UserTokenExpiredException; use BookStack\Exceptions\UserTokenNotFoundException; -use BookStack\Facades\Theme; use BookStack\Http\Controllers\Controller; -use BookStack\Theming\ThemeEvents; use Exception; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; @@ -18,22 +16,25 @@ use Illuminate\Routing\Redirector; class UserInviteController extends Controller { protected $inviteService; + protected $loginService; protected $userRepo; /** * Create a new controller instance. */ - public function __construct(UserInviteService $inviteService, UserRepo $userRepo) + public function __construct(UserInviteService $inviteService, LoginService $loginService, UserRepo $userRepo) { $this->middleware('guest'); $this->middleware('guard:standard'); $this->inviteService = $inviteService; + $this->loginService = $loginService; $this->userRepo = $userRepo; } /** * Show the page for the user to set the password for their account. + * * @throws Exception */ public function showSetPassword(string $token) @@ -51,12 +52,13 @@ class UserInviteController extends Controller /** * Sets the password for an invited user and then grants them access. + * * @throws Exception */ public function setPassword(Request $request, string $token) { $this->validate($request, [ - 'password' => 'required|min:8' + 'password' => 'required|min:8', ]); try { @@ -70,19 +72,19 @@ class UserInviteController extends Controller $user->email_confirmed = true; $user->save(); - auth()->login($user); - Theme::dispatch(ThemeEvents::AUTH_LOGIN, auth()->getDefaultDriver(), $user); - $this->logActivity(ActivityType::AUTH_LOGIN, $user); - $this->showSuccessNotification(trans('auth.user_invite_success', ['appName' => setting('app-name')])); $this->inviteService->deleteByUser($user); + $this->showSuccessNotification(trans('auth.user_invite_success', ['appName' => setting('app-name')])); + $this->loginService->login($user, auth()->getDefaultDriver()); return redirect('/'); } /** * Check and validate the exception thrown when checking an invite token. - * @return RedirectResponse|Redirector + * * @throws Exception + * + * @return RedirectResponse|Redirector */ protected function handleTokenException(Exception $exception) { @@ -92,6 +94,7 @@ class UserInviteController extends Controller if ($exception instanceof UserTokenExpiredException) { $this->showErrorNotification(trans('errors.invite_token_expired')); + return redirect('/password/email'); }