X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/3d11cba223cad16ad13faee010259e97b05dcee9..refs/pull/2023/head:/app/Http/Middleware/ChecksForEmailConfirmation.php diff --git a/app/Http/Middleware/ChecksForEmailConfirmation.php b/app/Http/Middleware/ChecksForEmailConfirmation.php index df75c2f33..4b1732810 100644 --- a/app/Http/Middleware/ChecksForEmailConfirmation.php +++ b/app/Http/Middleware/ChecksForEmailConfirmation.php @@ -2,10 +2,22 @@ namespace BookStack\Http\Middleware; +use BookStack\Exceptions\UnauthorizedException; use Illuminate\Http\Request; trait ChecksForEmailConfirmation { + /** + * Check if the current user has a confirmed email if the instance deems it as required. + * Throws if confirmation is required by the user. + * @throws UnauthorizedException + */ + protected function ensureEmailConfirmedIfRequested() + { + if ($this->awaitingEmailConfirmation()) { + throw new UnauthorizedException(trans('errors.email_confirmation_awaiting')); + } + } /** * Check if email confirmation is required and the current user is awaiting confirmation. @@ -21,22 +33,4 @@ trait ChecksForEmailConfirmation return false; } - - /** - * Provide an error response for when the current user's email is not confirmed - * in a system which requires it. - */ - protected function emailConfirmationErrorResponse(Request $request, bool $forceJson = false) - { - if ($request->wantsJson() || $forceJson) { - return response()->json([ - 'error' => [ - 'code' => 401, - 'message' => trans('errors.email_confirmation_awaiting') - ] - ], 401); - } - - return redirect('/register/confirm/awaiting'); - } } \ No newline at end of file