From 18b50f1ce6997e0cfe3c7d09c71bc1b7cbe9b2ec Mon Sep 17 00:00:00 2001 From: Adam French Date: Mon, 13 Apr 2026 11:19:10 +0100 Subject: [PATCH] Split admin login into its own route and add auth guard to /admin - Add /admin/login route for Login.vue as a standalone page - Add requiresAdmin guard to /admin route - Update auth guard redirect to /admin/login with redirect query param - Update nginx @auth_denied to redirect to /admin/login - Remove Login component from Admin.vue; drop v-if auth checks (guard handles access) - Remove stale view files from old views/ structure (moved in prior commit) Co-Authored-By: Claude Sonnet 4.6 --- nginx/nginx.conf.template | 2 +- vue/src/router/index.js | 8 +- vue/src/views/404.vue | 13 -- vue/src/views/Bookmarks.vue | 255 ----------------------- vue/src/views/Landing.vue | 56 ----- vue/src/views/Notes.vue | 75 ------- vue/src/views/Shrines.vue | 20 -- vue/src/views/admin/Admin.vue | 21 +- vue/src/views/shrines/Demoman.vue | 29 --- vue/src/views/shrines/Evangelion.vue | 13 -- vue/src/views/shrines/GTO.vue | 11 - vue/src/views/shrines/Skipskipbenben.vue | 13 -- 12 files changed, 15 insertions(+), 501 deletions(-) delete mode 100644 vue/src/views/404.vue delete mode 100644 vue/src/views/Bookmarks.vue delete mode 100644 vue/src/views/Landing.vue delete mode 100644 vue/src/views/Notes.vue delete mode 100644 vue/src/views/Shrines.vue delete mode 100644 vue/src/views/shrines/Demoman.vue delete mode 100644 vue/src/views/shrines/Evangelion.vue delete mode 100644 vue/src/views/shrines/GTO.vue delete mode 100644 vue/src/views/shrines/Skipskipbenben.vue diff --git a/nginx/nginx.conf.template b/nginx/nginx.conf.template index d4f1654..03d5b8a 100644 --- a/nginx/nginx.conf.template +++ b/nginx/nginx.conf.template @@ -246,7 +246,7 @@ http { } location @auth_denied { - return 302 /admin; + return 302 /admin/login; } location /searxng { diff --git a/vue/src/router/index.js b/vue/src/router/index.js index cd5949c..eae48f3 100644 --- a/vue/src/router/index.js +++ b/vue/src/router/index.js @@ -22,10 +22,16 @@ const router = createRouter({ name: "home", component: () => import("@/views/home/Home.vue"), }, + { + path: "admin/login", + name: "admin-login", + component: () => import("@/views/admin/Login.vue"), + }, { path: "admin", name: "admin", component: () => import("@/views/admin/Admin.vue"), + meta: { requiresAdmin: true }, }, { path: "bookmarks", @@ -94,7 +100,7 @@ router.beforeEach(async (to) => { }); }); } - if (!useAuthStore().user.admin) return "/admin"; + if (!useAuthStore().user.admin) return { path: "/admin/login", query: { redirect: to.fullPath } }; }); export default router; diff --git a/vue/src/views/404.vue b/vue/src/views/404.vue deleted file mode 100644 index 46d22a2..0000000 --- a/vue/src/views/404.vue +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/vue/src/views/Bookmarks.vue b/vue/src/views/Bookmarks.vue deleted file mode 100644 index 236e3e1..0000000 --- a/vue/src/views/Bookmarks.vue +++ /dev/null @@ -1,255 +0,0 @@ - - - diff --git a/vue/src/views/Landing.vue b/vue/src/views/Landing.vue deleted file mode 100644 index 8a62035..0000000 --- a/vue/src/views/Landing.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - - - diff --git a/vue/src/views/Notes.vue b/vue/src/views/Notes.vue deleted file mode 100644 index b9f8f6e..0000000 --- a/vue/src/views/Notes.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - diff --git a/vue/src/views/Shrines.vue b/vue/src/views/Shrines.vue deleted file mode 100644 index 18ae86b..0000000 --- a/vue/src/views/Shrines.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/vue/src/views/admin/Admin.vue b/vue/src/views/admin/Admin.vue index cf9ae2a..199a72d 100644 --- a/vue/src/views/admin/Admin.vue +++ b/vue/src/views/admin/Admin.vue @@ -1,8 +1,4 @@ diff --git a/vue/src/views/shrines/Demoman.vue b/vue/src/views/shrines/Demoman.vue deleted file mode 100644 index e791982..0000000 --- a/vue/src/views/shrines/Demoman.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - diff --git a/vue/src/views/shrines/Evangelion.vue b/vue/src/views/shrines/Evangelion.vue deleted file mode 100644 index 638d53c..0000000 --- a/vue/src/views/shrines/Evangelion.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/vue/src/views/shrines/GTO.vue b/vue/src/views/shrines/GTO.vue deleted file mode 100644 index e945b5c..0000000 --- a/vue/src/views/shrines/GTO.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/vue/src/views/shrines/Skipskipbenben.vue b/vue/src/views/shrines/Skipskipbenben.vue deleted file mode 100644 index 638d53c..0000000 --- a/vue/src/views/shrines/Skipskipbenben.vue +++ /dev/null @@ -1,13 +0,0 @@ - - -