3 namespace BookStack\Http\Middleware;
6 use Illuminate\Http\Request;
10 use ChecksForEmailConfirmation;
13 * Handle an incoming request.
15 public function handle(Request $request, Closure $next)
17 if ($this->awaitingEmailConfirmation()) {
18 return $this->emailConfirmationErrorResponse($request);
21 if (!hasAppAccess()) {
22 if ($request->ajax()) {
23 return response('Unauthorized.', 401);
25 return redirect()->guest(url('/login'));
29 return $next($request);
33 * Provide an error response for when the current user's email is not confirmed
34 * in a system which requires it.
36 protected function emailConfirmationErrorResponse(Request $request)
38 if ($request->wantsJson()) {
39 return response()->json([
42 'message' => trans('errors.email_confirmation_awaiting')
47 if (session()->get('sent-email-confirmation') === true) {
48 return redirect('/register/confirm');
51 return redirect('/register/confirm/awaiting');