diff --git a/app/Http/Controllers/Auth/ConfirmEmailController.php b/app/Http/Controllers/Auth/ConfirmEmailController.php index ea633ff3a..b282d0601 100644 --- a/app/Http/Controllers/Auth/ConfirmEmailController.php +++ b/app/Http/Controllers/Auth/ConfirmEmailController.php @@ -51,14 +51,28 @@ class ConfirmEmailController extends Controller return view('auth.user-unconfirmed', ['user' => $user]); } + /** + * Show the form for a user to provide their positive confirmation of their email. + */ + public function showAcceptForm(string $token) + { + return view('auth.register-confirm-accept', ['token' => $token]); + } + /** * Confirms an email via a token and logs the user into the system. * * @throws ConfirmationEmailException * @throws Exception */ - public function confirm(string $token) + public function confirm(Request $request) { + $validated = $this->validate($request, [ + 'token' => ['required', 'string'] + ]); + + $token = $validated['token']; + try { $userId = $this->emailConfirmationService->checkTokenAndGetUserId($token); } catch (UserTokenNotFoundException $exception) { diff --git a/resources/js/components/auto-submit.js b/resources/js/components/auto-submit.js new file mode 100644 index 000000000..11494ae82 --- /dev/null +++ b/resources/js/components/auto-submit.js @@ -0,0 +1,12 @@ + +class AutoSubmit { + + setup() { + this.form = this.$el; + + this.form.submit(); + } + +} + +export default AutoSubmit; \ No newline at end of file diff --git a/resources/js/components/index.js b/resources/js/components/index.js index ee282b1fd..9f801668e 100644 --- a/resources/js/components/index.js +++ b/resources/js/components/index.js @@ -4,6 +4,7 @@ import ajaxForm from "./ajax-form.js" import attachments from "./attachments.js" import attachmentsList from "./attachments-list.js" import autoSuggest from "./auto-suggest.js" +import autoSubmit from "./auto-submit.js"; import backToTop from "./back-to-top.js" import bookSort from "./book-sort.js" import chapterContents from "./chapter-contents.js" @@ -64,6 +65,7 @@ const componentMapping = { "attachments": attachments, "attachments-list": attachmentsList, "auto-suggest": autoSuggest, + "auto-submit": autoSubmit, "back-to-top": backToTop, "book-sort": bookSort, "chapter-contents": chapterContents, diff --git a/resources/lang/en/auth.php b/resources/lang/en/auth.php index c670106f9..dc4b242a0 100644 --- a/resources/lang/en/auth.php +++ b/resources/lang/en/auth.php @@ -61,6 +61,8 @@ return [ 'email_confirm_send_error' => 'Email confirmation required but the system could not send the email. Contact the admin to ensure email is set up correctly.', 'email_confirm_success' => 'Your email has been confirmed! You should now be able to login using this email address.', 'email_confirm_resent' => 'Confirmation email resent, Please check your inbox.', + 'email_confirm_thanks' => 'Thanks for confirming!', + 'email_confirm_thanks_desc' => 'Please wait a moment while your confirmation is handled. If you are not redirected after 3 seconds press the "Continue" link below to proceed.', 'email_not_confirmed' => 'Email Address Not Confirmed', 'email_not_confirmed_text' => 'Your email address has not yet been confirmed.', diff --git a/resources/views/auth/register-confirm-accept.blade.php b/resources/views/auth/register-confirm-accept.blade.php new file mode 100644 index 000000000..e52bdb411 --- /dev/null +++ b/resources/views/auth/register-confirm-accept.blade.php @@ -0,0 +1,27 @@ +@extends('layouts.simple') + +@section('content') + +
{{ trans('auth.email_confirm_thanks_desc') }}
+ +