diff --git a/app/Http/Controllers/Traits/VerifiesUserEmail.php b/app/Http/Controllers/Traits/VerifiesUserEmail.php index c9309f2780c6..74232e3fc722 100644 --- a/app/Http/Controllers/Traits/VerifiesUserEmail.php +++ b/app/Http/Controllers/Traits/VerifiesUserEmail.php @@ -13,6 +13,7 @@ namespace App\Http\Controllers\Traits; use App\Models\User; +use App\Utils\Traits\MakesHash; use App\Utils\Traits\UserSessionAttributes; use Illuminate\Http\RedirectResponse; use Illuminate\Support\Facades\Hash; @@ -23,6 +24,7 @@ use Illuminate\Support\Facades\Hash; trait VerifiesUserEmail { use UserSessionAttributes; + use MakesHash; /** * @return RedirectResponse @@ -37,14 +39,14 @@ trait VerifiesUserEmail return $this->render('auth.confirmed', ['root' => 'themes', 'message' => ctrans('texts.wrong_confirmation')]); } - if (is_null($user->password) || empty($user->password)) { - return $this->render('auth.confirmation_with_password', ['root' => 'themes']); - } - $user->email_verified_at = now(); $user->confirmation_code = null; $user->save(); + if (is_null($user->password) || empty($user->password) || Hash::check('', $user->password)) { + return $this->render('auth.confirmation_with_password', ['root' => 'themes', 'user_id' => $user->hashed_id]); + } + return $this->render('auth.confirmed', [ 'root' => 'themes', 'message' => ctrans('texts.security_confirmation'), @@ -53,16 +55,13 @@ trait VerifiesUserEmail public function confirmWithPassword() { - $user = User::where('confirmation_code', request()->confirmation_code)->first(); - - if (! $user) { - return $this->render('auth.confirmed', ['root' => 'themes', 'message' => ctrans('texts.wrong_confirmation')]); - } + $user = User::where('id', $this->decodePrimaryKey(request()->user_id))->firstOrFail(); request()->validate([ - 'password' => ['required', 'min:6', 'confirmed'], + 'password' => ['required', 'min:6'], ]); + $user->password = Hash::make(request()->password); $user->email_verified_at = now(); diff --git a/resources/views/themes/ninja2020/auth/confirmation_with_password.blade.php b/resources/views/themes/ninja2020/auth/confirmation_with_password.blade.php index 5ff7dfc7c39d..ee02e834ee61 100644 --- a/resources/views/themes/ninja2020/auth/confirmation_with_password.blade.php +++ b/resources/views/themes/ninja2020/auth/confirmation_with_password.blade.php @@ -11,6 +11,7 @@
@csrf +