3 namespace BookStack\Exceptions;
5 use BookStack\Access\LoginService;
6 use BookStack\Users\Models\User;
7 use Illuminate\Contracts\Support\Responsable;
8 use Illuminate\Http\Request;
10 class StoppedAuthenticationException extends \Exception implements Responsable
12 public function __construct(
14 protected LoginService $loginService
16 parent::__construct();
22 public function toResponse($request)
26 if ($this->loginService->awaitingEmailConfirmation($this->user)) {
27 return $this->awaitingEmailConfirmationResponse($request);
30 if ($this->loginService->needsMfaVerification($this->user)) {
31 $redirect = '/mfa/verify';
34 return redirect($redirect);
38 * Provide an error response for when the current user's email is not confirmed
39 * in a system which requires it.
41 protected function awaitingEmailConfirmationResponse(Request $request)
43 if ($request->wantsJson()) {
44 return response()->json([
47 'message' => trans('errors.email_confirmation_awaiting'),
52 if (session()->pull('sent-email-confirmation') === true) {
53 return redirect('/register/confirm');
56 return redirect('/register/confirm/awaiting');