This commit is contained in:
NaggaDIM
2025-01-02 00:05:09 +03:00
parent 2d071320a3
commit 277a5d5a31
16 changed files with 297 additions and 397 deletions

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers;
class DashboardController extends Controller
{
public function __invoke()
{
return inertia('Dashboard');
}
}

View File

@@ -0,0 +1,15 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Route;
class IndexController extends Controller
{
public function __invoke()
{
return inertia('Welcome')
->with('canLogin', Route::has('login'))
->with('canRegister', Route::has('register'));
}
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers;
class NeedVerificationController extends Controller
{
public function __invoke()
{
return inertia('NeedProfileVerification');
}
}

View File

@@ -3,6 +3,7 @@
namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Inertia\Middleware;
use Tighten\Ziggy\Ziggy;
@@ -39,6 +40,9 @@ class HandleInertiaRequests extends Middleware
...(new Ziggy)->toArray(),
'location' => $request->url(),
],
'currentYear' => now()->year,
'canLogin' => Route::has('login'),
'canRegister' => Route::has('register'),
];
}
}

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class ProfileVerificationMiddleware
{
public function handle(Request $request, Closure $next)
{
if(empty($request->user()->verified_at) && !($request->routeIs('profile.need-verification') || $request->routeIs('index'))) {
return redirect()->route('profile.need-verification');
}
if(!empty($request->user()->verified_at) && $request->routeIs('profile.need-verification')) {
return redirect()->route('dashboard');
}
return $next($request);
}
}

View File

@@ -21,6 +21,7 @@ class User extends Authenticatable
'name',
'email',
'password',
'verified_at'
];
/**
@@ -41,6 +42,7 @@ class User extends Authenticatable
protected function casts(): array
{
return [
'verified_at' => 'datetime',
'email_verified_at' => 'datetime',
'password' => 'hashed',
];