diff --git a/app/Http/Middleware/HasRole.php b/app/Http/Middleware/HasRole.php new file mode 100644 index 0000000..c1bf836 --- /dev/null +++ b/app/Http/Middleware/HasRole.php @@ -0,0 +1,27 @@ +user()->role === $role){ + return $next($request); + } + else{ + abort('401'); + } + } +} diff --git a/routes/web.php b/routes/web.php index 5b8bfaa..0d8f182 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,8 +1,10 @@ name('home'); @@ -14,7 +16,16 @@ Route::middleware('auth')->group(function () { Route::delete('/logout', [AuthenticatedUserController::class, 'destroy'])->name('logout'); - Route::view('/user/dashboard', 'dashboards.user')->name('user.dashboard'); - Route::view('/broker/dashboard', 'dashboards.broker')->name('broker.dashboard'); - Route::view('/admin/dashboard', 'dashboards.admin')->name('admin.dashboard'); + + Route::view('/user/dashboard', 'dashboards.user') + ->middleware(HasRole::class.':'.UserTypes::User->value) + ->name('user.dashboard'); + + Route::view('/broker/dashboard', 'dashboards.broker') + ->middleware(HasRole::class.':'.UserTypes::Broker->value) + ->name('broker.dashboard'); + + Route::view('/admin/dashboard', 'dashboards.admin') + ->middleware(HasRole::class.':'.UserTypes::Admin->value) + ->name('admin.dashboard'); });