From 732cd3798bbbcd6fc8308594bfa52f4cf8ff2031 Mon Sep 17 00:00:00 2001 From: Xwen <929716663@qq.com> Date: Thu, 21 Dec 2023 23:37:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E6=9D=BF=E5=9D=97?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Yi.Bbs.Vue3/src/layout/AppHeader.vue | 3 ++- Yi.Bbs.Vue3/src/stores/user.js | 8 -------- Yi.Bbs.Vue3/src/utils/auth.js | 19 +++++++++++++++---- Yi.Bbs.Vue3/src/views/Discuss.vue | 6 +++--- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/Yi.Bbs.Vue3/src/layout/AppHeader.vue b/Yi.Bbs.Vue3/src/layout/AppHeader.vue index e679ef15..0a0d1daf 100644 --- a/Yi.Bbs.Vue3/src/layout/AppHeader.vue +++ b/Yi.Bbs.Vue3/src/layout/AppHeader.vue @@ -75,7 +75,7 @@ import useConfigStore from "@/stores/config"; import useAuths from "@/hooks/useAuths"; import { Session } from "@/utils/storage"; -const { getToken } = useAuths(); +const { getToken, clearStorage } = useAuths(); const configStore = useConfigStore(); const router = useRouter(); const route = useRoute(); @@ -108,6 +108,7 @@ const enterProfile = () => { router.push("/profile"); }; const toLogin = () => { + clearStorage(); Session.set("currentPath", route.path); router.push("/login"); }; diff --git a/Yi.Bbs.Vue3/src/stores/user.js b/Yi.Bbs.Vue3/src/stores/user.js index 6a445008..2d181b65 100644 --- a/Yi.Bbs.Vue3/src/stores/user.js +++ b/Yi.Bbs.Vue3/src/stores/user.js @@ -14,7 +14,6 @@ const useUserStore = defineStore("user", { icon: null, roles: [], permissions: [], - hasPermissions: false, }), getters: {}, actions: { @@ -48,17 +47,10 @@ const useUserStore = defineStore("user", { user.icon == "" || user.icon == null ? "/favicon.ico" : import.meta.env.VITE_APP_BASEAPI + "/file/" + user.icon; - const all_permission = "*:*:*"; if (res.roleCodes && res.roleCodes.length > 0) { // 验证返回的roles是否是一个非空数组 this.roles = res.roleCodes; this.permissions = res.permissionCodes; - this.hasPermissions = res.permissionCodes.some((permission) => { - return ( - all_permission === permission || - permissionFlag.includes(permission) - ); - }); // this.roles = ["admin"]; // this.permissions=["*:*:*"] } else { diff --git a/Yi.Bbs.Vue3/src/utils/auth.js b/Yi.Bbs.Vue3/src/utils/auth.js index 361f5648..691f4923 100644 --- a/Yi.Bbs.Vue3/src/utils/auth.js +++ b/Yi.Bbs.Vue3/src/utils/auth.js @@ -1,13 +1,24 @@ -const TokenKey = 'Admin-Token' +import useUserStore from "@/stores/user"; +const TokenKey = "Admin-Token"; export function getToken() { - return localStorage.getItem(TokenKey) + return localStorage.getItem(TokenKey); } export function setToken(token) { - return localStorage.setItem(TokenKey, token) + return localStorage.setItem(TokenKey, token); } export function removeToken() { - return localStorage.removeItem (TokenKey) + return localStorage.removeItem(TokenKey); +} + +export function getPermission(code) { + const all_permission = "*:*:*"; + const isHasPermission = useUserStore().permissions.some((permission) => { + return all_permission === permission || code.includes(permission); + }); + return { + isHasPermission, + }; } diff --git a/Yi.Bbs.Vue3/src/views/Discuss.vue b/Yi.Bbs.Vue3/src/views/Discuss.vue index 7a943801..413d2e99 100644 --- a/Yi.Bbs.Vue3/src/views/Discuss.vue +++ b/Yi.Bbs.Vue3/src/views/Discuss.vue @@ -106,6 +106,7 @@ import { ref, reactive, watch, computed } from "vue"; import { useRoute, useRouter } from "vue-router"; import BottomInfo from "@/components/BottomInfo.vue"; import useUserStore from "@/stores/user"; +import { getPermission } from "@/utils/auth"; //数据定义 const route = useRoute(); @@ -159,10 +160,9 @@ const loadDiscussList = async () => { }; //进入添加主题页面 +const { isHasPermission } = getPermission("bbs:discuss:add"); const isEditArticle = computed( - () => - useUserStore().hasPermissions && - !(route.params.isPublish === "false" ? false : true) + () => isHasPermission && !(route.params.isPublish === "false" ? false : true) ); const enterEditArticle = () => { if (isEditArticle.value) {