diff --git a/src/router/index.ts b/src/router/index.ts index 86ed0c7..6563ce3 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,6 +1,7 @@ import { createRouter, createWebHistory } from "vue-router"; import UserManage from "@/views/userManage/UserManage.vue"; import Debug from "@/views/debug/debug.vue"; +import { useUserStore } from "@/stores/user"; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), @@ -77,6 +78,12 @@ router.beforeEach((to, from) => { if (!isAuthenticated() && to.name !== "login") { return { name: "login" }; } + if (to.name === "userManage") { + const userStore = useUserStore(); + if (userStore.user?.role !== 1) { + return { name: "graphite" }; + } + } }); export default router; diff --git a/src/stores/index.ts b/src/stores/index.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/stores/user.ts b/src/stores/user.ts new file mode 100644 index 0000000..e6aaebf --- /dev/null +++ b/src/stores/user.ts @@ -0,0 +1,12 @@ +import type { User } from "@/services/user/userManager"; +import { defineStore } from "pinia"; +import { ref } from "vue"; + +export const useUserStore = defineStore("user", () => { + const user = ref(); + const setUser = (usr: User) => { + user.value = usr; + }; + + return { user, setUser }; +}); diff --git a/src/views/components/Menu.vue b/src/views/components/Menu.vue index b444c85..8a9d001 100644 --- a/src/views/components/Menu.vue +++ b/src/views/components/Menu.vue @@ -15,7 +15,7 @@