From 1ca9f779c5cf238a1cf27457be2fbb33b49e0103 Mon Sep 17 00:00:00 2001 From: kusowl Date: Mon, 12 Jan 2026 11:50:48 +0530 Subject: [PATCH] feat(dashboard): restrict dashboard url to intended role - add HasRole middleware --- app/Http/Middleware/HasRole.php | 27 +++++++++++++++++++++++++++ routes/web.php | 17 ++++++++++++++--- 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 app/Http/Middleware/HasRole.php 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'); });