redirect for auth non-verified users

parent 6f15f435
...@@ -14,4 +14,5 @@ class Authenticate extends Middleware ...@@ -14,4 +14,5 @@ class Authenticate extends Middleware
{ {
return $request->expectsJson() ? null : route('login.auth'); // перенаправление для не зарегистрированного return $request->expectsJson() ? null : route('login.auth'); // перенаправление для не зарегистрированного
} }
} }
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Auth\Middleware\EnsureEmailIsVerified as Middleware;
use Illuminate\Http\Request;
class EnsureEmailIsVerified extends Middleware
{
/**
* Get the path the user should be redirected to when they are not authenticated.
*/
public static function redirectTo($route)
{
return static::class.':'.$route;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $redirectToRoute
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse|null
*/
public function handle($request, Closure $next, $redirectToRoute = null)
{
if (! $request->user() ) {
return redirect()->route('home');
} else {
if (! $request->user()->hasVerifiedEmail()) {
return redirect()->route('home');
//return redirect()->route('notVerified');
}
}
return $next($request);
}
}
...@@ -16,7 +16,7 @@ class RedirectIfAuthenticated ...@@ -16,7 +16,7 @@ class RedirectIfAuthenticated
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/ */
public function handle(Request $request, Closure $next, string ...$guards): Response public function handle(Request $request, Closure $next, string ...$guards): Response
{ {
$guards = empty($guards) ? [null] : $guards; $guards = empty($guards) ? [null] : $guards;
foreach ($guards as $guard) { foreach ($guards as $guard) {
......
...@@ -340,7 +340,6 @@ ...@@ -340,7 +340,6 @@
auth.classList.add('m-hide'); auth.classList.add('m-hide');
emailMessageEmail.innerText = email; emailMessageEmail.innerText = email;
//emailMessageLink.setAttribute("action", link);
emailMessage.classList.remove('m-hide'); emailMessage.classList.remove('m-hide');
} }
......
...@@ -230,4 +230,20 @@ ...@@ -230,4 +230,20 @@
</div> </div>
</section><!-- End Contact Section --> </section><!-- End Contact Section -->
@endsection @endsection
\ No newline at end of file
@section('page_scripts')
@auth
@if(! auth()->user()->hasVerifiedEmail())
<script>
document.querySelector('.b-social').classList.add('m-hide');
document.querySelector('.b-auth').classList.add('m-hide');
document.querySelector('.b-email-message').classList.remove('m-hide');
document.querySelector('#navbar .getstarted').click();
</script>
@endif
@endauth
@endsection
\ No newline at end of file
...@@ -37,12 +37,18 @@ ...@@ -37,12 +37,18 @@
<nav id="navbar" class="navbar"> <nav id="navbar" class="navbar">
<ul> <ul>
@auth @auth
<li class="dropdown"><a href="#"><span class="fw-bold">{{ auth()->user()->email }}</span> <i class="bi bi-chevron-down"></i></a> @if(auth()->user()->hasVerifiedEmail())
<ul> <li class="dropdown"><a href="#"><span class="fw-bold">{{ auth()->user()->email }}</span> <i class="bi bi-chevron-down"></i></a>
<li><a href="{{ url('settings') }}">Налаштування</a></li> <ul>
<li><a href="{{ route('logout') }}">Вийти</a></li> <li><a href="{{ url('settings') }}">Налаштування</a></li>
</ul> <li><a href="{{ route('logout') }}">Вийти</a></li>
</li> </ul>
</li>
@else
<li>
<a class="getstarted" href="#" data-bs-toggle="modal" data-bs-target="#loginModal">Увiйти</a>
</li>
@endif
@endauth @endauth
@guest @guest
<li> <li>
......
...@@ -74,11 +74,10 @@ ...@@ -74,11 +74,10 @@
</div> </div>
<div class="b-email-message contact text-center m-hide"> <div class="b-email-message contact text-center m-hide">
<p>На пошту <b></b> надіслано листа, потрібно перейти за посиланням.</p> <p>На пошту <b>@auth {{ auth()->user()->email }} @endauth</b> надіслано листа, потрібно перейти за посиланням.</p>
<p>Якщо лист не надійшов, перевірте спам.</p> <p>Якщо лист не надійшов, перевірте спам.</p>
<form method="post" action='/email/verification-notification' class="php-email-form" id="ver-email-form"> <form method="post" action='/email/verification-notification' class="php-email-form" id="ver-email-form">
@csrf @csrf
<button type="submit">Надіслати листа ще раз</button> <button type="submit">Надіслати листа ще раз</button>
</form> </form>
</div> </div>
......
...@@ -3,9 +3,7 @@ ...@@ -3,9 +3,7 @@
@section('title')Авторизацiя @endsection @section('title')Авторизацiя @endsection
@section('page_scripts') @section('page_scripts')
@if(!config('project.minificate_static'))
<script> <script>
document.querySelector('#navbar .getstarted').click(); document.querySelector('#navbar .getstarted').click();
</script> </script>
@endif
@endsection @endsection
...@@ -25,10 +25,12 @@ Route::get('/test', function () { ...@@ -25,10 +25,12 @@ Route::get('/test', function () {
return view('test'); return view('test');
}) -> name('test'); }) -> name('test');
Route::get('/', function () { Route::get('/', function () {
return view('home'); return view('home');
}) -> name('home'); }) -> name('home');
Route::get('/loading', function () { Route::get('/loading', function () {
return view('loading'); return view('loading');
}) -> name('loading'); }) -> name('loading');
...@@ -50,6 +52,14 @@ Route::post('/email/verification-notification', function (Request $request) { ...@@ -50,6 +52,14 @@ Route::post('/email/verification-notification', function (Request $request) {
})->middleware(['auth', 'throttle:6,1'])->name('verification.send'); })->middleware(['auth', 'throttle:6,1'])->name('verification.send');
/*
Route::group(['middleware' => ['guest', 'verified']], function(){
Route::get('/', function () {
return view('home');
}) -> name('home');
});
*/
Route::group(['middleware' => 'guest'], function(){ Route::group(['middleware' => 'guest'], function(){
Route::get('/register', [UserController::class, 'create']) -> name('register.create'); Route::get('/register', [UserController::class, 'create']) -> name('register.create');
...@@ -73,7 +83,14 @@ Route::group(['middleware' => 'guest'], function(){ ...@@ -73,7 +83,14 @@ Route::group(['middleware' => 'guest'], function(){
Route::group(['middleware' => 'auth'], function(){ Route::group(['middleware' => 'auth'], function(){
Route::get('/logout', [UserController::class, 'logout']) -> name('logout'); Route::get('/logout', [UserController::class, 'logout']) -> name('logout');
//Route::get('/settings', [UserController::class, 'settings']) -> name('settings');
//Route::post('/settings', [UserController::class, 'edit']) -> name('settings.edit');
});
Route::group(['middleware' => ['verified']], function(){
Route::get('/settings', [UserController::class, 'settings']) -> name('settings'); Route::get('/settings', [UserController::class, 'settings']) -> name('settings');
Route::post('/settings', [UserController::class, 'edit']) -> name('settings.edit'); Route::post('/settings', [UserController::class, 'edit']) -> name('settings.edit');
}); });
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment