feat: admin middleware and route cleanup

This commit is contained in:
Nicholas Ciechanowski 2023-10-10 19:37:22 +11:00
parent d49c43f209
commit e3f0f10d5d
3 changed files with 25 additions and 9 deletions

View File

@ -54,6 +54,7 @@ class Kernel extends HttpKernel
*/ */
protected $middlewareAliases = [ protected $middlewareAliases = [
'auth' => \App\Http\Middleware\Authenticate::class, 'auth' => \App\Http\Middleware\Authenticate::class,
'auth.admin' => \App\Http\Middleware\AuthenticateAdmin::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class, 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,

View File

@ -0,0 +1,14 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
use Illuminate\Http\Request;
class AuthenticateAdmin extends Middleware
{
protected function redirectTo(Request $request): ?string
{
return auth()->user()->is_admin;
}
}

View File

@ -17,17 +17,18 @@ use Livewire\Volt\Volt;
Route::view('/', 'home') Route::view('/', 'home')
->name('home'); ->name('home');
Route::view('dashboard', 'dashboard') Route::middleware(['auth'])->group(function() {
->middleware(['auth']) Route::view('dashboard', 'dashboard')
->name('dashboard'); ->name('dashboard');
Route::view('profile', 'profile') Route::view('profile', 'profile')
->middleware(['auth'])
->name('profile'); ->name('profile');
Route::view('send', 'admin.send') Route::middleware('auth.admin')->prefix('admin')->group(function () {
->middleware(['auth']) Route::view('send', 'admin.send')
->name('admin.send'); ->name('admin.send');
});
});
Route::middleware('guest')->group(function () { Route::middleware('guest')->group(function () {
Volt::route('login', 'pages.auth.login') Volt::route('login', 'pages.auth.login')