diff --git a/app/Http/Controllers/LoginController.php b/app/Http/Controllers/Auth/LoginController.php similarity index 96% rename from app/Http/Controllers/LoginController.php rename to app/Http/Controllers/Auth/LoginController.php index 07594b5..bf6d285 100644 --- a/app/Http/Controllers/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -1,9 +1,10 @@ ['required', 'string', 'min:5', 'max:16', 'unique:account.account'], + 'email' => ['required', 'string', 'email', 'max:255', 'unique:account.account'], + 'password' => ['required', 'string', 'min:5', 'max:16'], + 'tac' => ['required'], + ]); + } + + /** + * Create a new user instance after a valid registration. + * + * @param array $data + * @return Account + */ + protected function create(array $data): Account + { + $account = new Account(); + $account->login = $data['login']; + $account->email = $data['email']; + $account->password = (new MySQLHasher)->make($data['password']); + $account->status = AccountStatusEnum::NOT_AVAILABLE; + $account->saveOrFail(); + + return $account; + } + + /** + * Show the application registration form. + * + * @return View + */ + public function showRegistrationForm(): View + { + return view('user/registration/register'); + } + + /** + * Handle a registration request for the application. + * + * @param Request $request + * @return RedirectResponse + * @throws ValidationException + */ + public function register(Request $request) + { + $this->validator($request->all())->validate(); + + event(new Registered($user = $this->create($request->all()))); + + Auth::guard()->login($user); + + return redirect('user/verification/notice'); + } +} diff --git a/app/Http/Controllers/Auth/VerificationController.php b/app/Http/Controllers/Auth/VerificationController.php new file mode 100644 index 0000000..a763c04 --- /dev/null +++ b/app/Http/Controllers/Auth/VerificationController.php @@ -0,0 +1,69 @@ +middleware('auth'); + $this->middleware('signed')->only('verify'); + $this->middleware('throttle:6,1')->only('verify', 'resend'); + } + + /** + * Show the email verification notice. + * + * @param Request $request + * @return RedirectResponse|View + */ + public function show(Request $request): View|RedirectResponse + { + return $request->user()->hasVerifiedEmail() + ? redirect($this->redirectPath()) + : view('user/registration/verification-notice'); + } + + /** + * The user has been verified. + * + * @param Request $request + * @return View + */ + protected function verified(Request $request): View + { + return view('user/registration/registration-success'); + } +} diff --git a/app/Models/Account.php b/app/Models/Account.php index 5a6ab7e..389ebe2 100644 --- a/app/Models/Account.php +++ b/app/Models/Account.php @@ -49,7 +49,6 @@ class Account extends User implements MustVerifyEmail */ protected $fillable = [ 'login', - 'password', 'email', ]; @@ -71,7 +70,6 @@ class Account extends User implements MustVerifyEmail */ protected $casts = [ 'email_verified_at' => 'datetime', - 'password' => 'hashed', 'status' => AccountStatusEnum::class ]; diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 95ac4e1..35fe30f 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -226,7 +226,7 @@ function () { - @if (Auth::user()->status == \App\Models\Enums\AccountStatusEnum::OK) + @if (Auth::user()->hasVerifiedEmail())
Scopul acestui Ghid al Comunitatii este sa creeze un mediu placut ce va face sederea in aceasta comunitate plina de distractie, unica si sigura, incurajand utilizatorii sa se comporte intr-o maniera care promoveaza integritatea, decenta si respectul.
- Acest Ghid al Comunitatii va ajuta sa intelegeti ce inseamna sa faceti parte din comunitatea Metin2. Tineti minte ca prin folosirea platformelor Metin2 sunteti de acord cu Ghidul Comunitatii Metin2 si a termenilor & conditiilor.
Înregistrare
-Activează și descarcă
-Instalează și joacă-te
-* este necesar
diff --git a/resources/views/user/registration/registration-success.blade.php b/resources/views/user/registration/registration-success.blade.php new file mode 100644 index 0000000..6a9a5ae --- /dev/null +++ b/resources/views/user/registration/registration-success.blade.php @@ -0,0 +1,42 @@ +@extends('layouts.app') + +@section('content') + ++ Contul tău este acum activat. Continuă prin a descărca jocul de mai jos. + Distracție plăcută! +
++ Pentru finalizarea înregistrării tale, trebuie să îți verificăm adresa + de e-mail. Accesează-ți căsuța de e-mail și urmează link-ul din mesaj pentru activare. +
+ +Un nou e-mail de verificare a fost trimis!
+ @endif + +
+ Te rugăm să aștepți câteva minute pentru a primi e-mail-ul de activare.
+ Totodată, nu uita să verifici folderele Spam / Junk. În cazul în care
+ încă nu primești mesajul, poți solicita retrimiterea acestuia.
+
+
+
+
+ Retrimite mailul de activare
+
+