diff --git a/locale/core.yml b/locale/core.yml index cc6c527a0b..7f4f0cf81a 100644 --- a/locale/core.yml +++ b/locale/core.yml @@ -545,6 +545,11 @@ core: # Translations in this namespace are used in views other than Flarum's normal JS client. views: + # Translations in this namespace are displayed by the Confirm Email interface. + confirm_email: + submit_button: => core.ref.confirm_email + text: Click the button below to confirm your account's email. + title: => core.ref.confirm_email # Translations in this namespace are displayed by the basic HTML content loader. content: @@ -656,6 +661,7 @@ core: change_password: Change Password color: Color # Referenced by flarum-tags.yml confirm_password: Confirm Password + confirm_email: Confirm Email confirmation_email_sent: "We've sent a confirmation email to {email}. If it doesn't arrive soon, check your spam folder." custom_footer_text: Add HTML to be displayed at the very bottom of the page. custom_footer_title: Edit Custom Footer diff --git a/src/Forum/Controller/ConfirmEmailViewController.php b/src/Forum/Controller/ConfirmEmailViewController.php new file mode 100644 index 0000000000..865d1fa22c --- /dev/null +++ b/src/Forum/Controller/ConfirmEmailViewController.php @@ -0,0 +1,46 @@ +view = $view; + } + + /** + * @param Request $request + * @return \Illuminate\Contracts\View\View + */ + public function render(Request $request) + { + $token = Arr::get($request->getQueryParams(), 'token'); + + $token = EmailToken::validOrFail($token); + + return $this->view->make('flarum.forum::confirm-email') + ->with('csrfToken', $request->getAttribute('session')->token()); + } +} diff --git a/src/Forum/routes.php b/src/Forum/routes.php index 61448d511e..dd5c000945 100644 --- a/src/Forum/routes.php +++ b/src/Forum/routes.php @@ -64,7 +64,13 @@ $map->get( '/confirm/{token}', 'confirmEmail', - $route->toController(Controller\ConfirmEmailController::class) + $route->toController(Controller\ConfirmEmailViewController::class), + ); + + $map->post( + '/confirm/{token}', + 'confirmEmail.submit', + $route->toController(Controller\ConfirmEmailController::class), ); $map->get( diff --git a/views/confirm-email.blade.php b/views/confirm-email.blade.php new file mode 100644 index 0000000000..984af5ff12 --- /dev/null +++ b/views/confirm-email.blade.php @@ -0,0 +1,25 @@ +@extends('flarum.forum::layouts.basic') + +@section('title', $translator->trans('core.views.confirm_email.title')) + +@section('content') + @if ($errors->any()) +
+ +
+ @endif + +
+ + +

{{ $translator->trans('core.views.confirm_email.text') }}

+ +

+ +

+
+@endsection