From ccf9eb7f7302a8e3f8f0dedcaee7d4553683fcbb Mon Sep 17 00:00:00 2001 From: "iVampireSP.com" Date: Wed, 15 Mar 2023 21:44:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/js/plugins/router.js | 65 ++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 3 deletions(-) diff --git a/resources/js/plugins/router.js b/resources/js/plugins/router.js index 558e999..1a4d933 100644 --- a/resources/js/plugins/router.js +++ b/resources/js/plugins/router.js @@ -1,6 +1,5 @@ -import { createRouter, createWebHistory } from "vue-router"; +import {createRouter, createWebHistory} from "vue-router"; // import app from "../config/app"; -import { Tooltip, Toast } from "bootstrap"; const routes = [ { @@ -8,12 +7,72 @@ const routes = [ name: "index", component: () => import("../views/Index.vue"), meta: { - auth: true, title: "欢迎", }, }, + { + path: "/tunnels", + name: "tunnels", + component: () => import("../views/Tunnels/Index.vue"), + meta: { + title: "隧道", + }, + }, + { + path: "/tunnels/create", + name: "tunnels.create", + component: () => import("../views/Tunnels/Create.vue"), + meta: { + title: "创建隧道", + }, + }, + { + path: "/servers", + name: "servers", + component: () => import("../views/Servers/Index.vue"), + meta: { + title: "服务器列表", + }, + }, + { + path: "/servers/create", + name: "servers.create", + component: () => import("../views/Servers/Create.vue"), + meta: { + admin: true, + title: "创建服务器", + }, + }, + { + path: "/servers/:id/edit", + name: "servers.edit", + component: () => import("../views/Servers/Edit.vue"), + meta: { + admin: true, + title: "创建服务器", + }, + }, ]; + +// 验证用户是否是管理员(从 window 中获取) +const isAdmin = () => { + return window.Base.User.is_admin; +}; + +// before each route +routes.forEach((route) => { + route.beforeEnter = (to, from, next) => { + // 如果是管理员页面,且用户不是管理员,则跳转到首页 + if (route.meta.admin && !isAdmin()) { + next({name: "index"}); + } else { + next(); + } + }; +}); + + const router = createRouter({ history: createWebHistory(), routes,