From 79bb186234d54ec365af342a4e03c2869f6bcf55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Sun, 21 Jun 2026 16:44:01 +0200 Subject: [PATCH] Added admin layout --- .../Controllers/AdminDashboardController.php | 17 ++++++++++++ app/Domains/Admin/Routes/web.php | 12 +++++++++ app/Domains/Admin/Views/Dashboard.vue | 15 +++++++++++ app/Middleware/AdminRoleMiddleware.php | 26 +++++++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 app/Domains/Admin/Controllers/AdminDashboardController.php create mode 100644 app/Domains/Admin/Routes/web.php create mode 100644 app/Domains/Admin/Views/Dashboard.vue create mode 100644 app/Middleware/AdminRoleMiddleware.php diff --git a/app/Domains/Admin/Controllers/AdminDashboardController.php b/app/Domains/Admin/Controllers/AdminDashboardController.php new file mode 100644 index 0000000..23853fa --- /dev/null +++ b/app/Domains/Admin/Controllers/AdminDashboardController.php @@ -0,0 +1,17 @@ +render(); + } +} diff --git a/app/Domains/Admin/Routes/web.php b/app/Domains/Admin/Routes/web.php new file mode 100644 index 0000000..b8aa45c --- /dev/null +++ b/app/Domains/Admin/Routes/web.php @@ -0,0 +1,12 @@ +group(function () { + Route::prefix('admin')->group(function () { + Route::get('/', AdminDashboardController::class); + }); +}); diff --git a/app/Domains/Admin/Views/Dashboard.vue b/app/Domains/Admin/Views/Dashboard.vue new file mode 100644 index 0000000..b403e2b --- /dev/null +++ b/app/Domains/Admin/Views/Dashboard.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/app/Middleware/AdminRoleMiddleware.php b/app/Middleware/AdminRoleMiddleware.php new file mode 100644 index 0000000..c84a9a6 --- /dev/null +++ b/app/Middleware/AdminRoleMiddleware.php @@ -0,0 +1,26 @@ +check()) { + return redirect('/login')->with('message', 'Du musst eingeloggt sein.'); + } + + $authCheck = new AuthCheckProvider(); + $role = $authCheck->getUserRole(); + + if (!in_array($role, [UserRole::USER_ROLE_ADMIN, UserRole::USER_ROLE_GROUP_LEADER], true)) { + return redirect('/')->with('message', 'Du bist dazu nicht berechtigt.'); + } + + return $next($request); + } +}