From 814e8a252fc429aff725cd1c5ff4db582f65ab6f Mon Sep 17 00:00:00 2001 From: MoonTestUse1 Date: Wed, 1 Jan 2025 23:15:59 +0600 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D1=87=D0=B8=D0=BD=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B0=D0=B4=D0=BC=D0=B8=D0=BD=D0=BA=D0=B8=20=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D1=8C=D1=8E1=D0=B49l9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/router/index.ts | 12 +++++ frontend/src/views/admin/AddEmployeeView.vue | 46 ++++++++++++++------ frontend/src/views/admin/EmployeesView.vue | 6 +++ 3 files changed, 50 insertions(+), 14 deletions(-) diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 97638ed..167ceb3 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -1,4 +1,5 @@ import { createRouter, createWebHistory } from 'vue-router'; +import { useAuthStore } from '@/stores/auth'; const router = createRouter({ history: createWebHistory(), @@ -6,6 +7,7 @@ const router = createRouter({ { path: '/admin', component: () => import('@/layouts/AdminLayout.vue'), + meta: { requiresAdmin: true }, children: [ { path: '', @@ -41,4 +43,14 @@ const router = createRouter({ ] }); +router.beforeEach((to, from, next) => { + const authStore = useAuthStore(); + + if (to.meta.requiresAdmin && !authStore.isAdmin) { + next({ name: 'AdminLogin' }); + } else { + next(); + } +}); + export default router; \ No newline at end of file diff --git a/frontend/src/views/admin/AddEmployeeView.vue b/frontend/src/views/admin/AddEmployeeView.vue index e50c74b..b320ef0 100644 --- a/frontend/src/views/admin/AddEmployeeView.vue +++ b/frontend/src/views/admin/AddEmployeeView.vue @@ -1,25 +1,33 @@