fix:修复板块权限

This commit is contained in:
Xwen
2023-12-21 23:37:42 +08:00
parent 024ced4b3e
commit 732cd3798b
4 changed files with 20 additions and 16 deletions

View File

@@ -75,7 +75,7 @@ import useConfigStore from "@/stores/config";
import useAuths from "@/hooks/useAuths"; import useAuths from "@/hooks/useAuths";
import { Session } from "@/utils/storage"; import { Session } from "@/utils/storage";
const { getToken } = useAuths(); const { getToken, clearStorage } = useAuths();
const configStore = useConfigStore(); const configStore = useConfigStore();
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
@@ -108,6 +108,7 @@ const enterProfile = () => {
router.push("/profile"); router.push("/profile");
}; };
const toLogin = () => { const toLogin = () => {
clearStorage();
Session.set("currentPath", route.path); Session.set("currentPath", route.path);
router.push("/login"); router.push("/login");
}; };

View File

@@ -14,7 +14,6 @@ const useUserStore = defineStore("user", {
icon: null, icon: null,
roles: [], roles: [],
permissions: [], permissions: [],
hasPermissions: false,
}), }),
getters: {}, getters: {},
actions: { actions: {
@@ -48,17 +47,10 @@ const useUserStore = defineStore("user", {
user.icon == "" || user.icon == null user.icon == "" || user.icon == null
? "/favicon.ico" ? "/favicon.ico"
: import.meta.env.VITE_APP_BASEAPI + "/file/" + user.icon; : import.meta.env.VITE_APP_BASEAPI + "/file/" + user.icon;
const all_permission = "*:*:*";
if (res.roleCodes && res.roleCodes.length > 0) { if (res.roleCodes && res.roleCodes.length > 0) {
// 验证返回的roles是否是一个非空数组 // 验证返回的roles是否是一个非空数组
this.roles = res.roleCodes; this.roles = res.roleCodes;
this.permissions = res.permissionCodes; this.permissions = res.permissionCodes;
this.hasPermissions = res.permissionCodes.some((permission) => {
return (
all_permission === permission ||
permissionFlag.includes(permission)
);
});
// this.roles = ["admin"]; // this.roles = ["admin"];
// this.permissions=["*:*:*"] // this.permissions=["*:*:*"]
} else { } else {

View File

@@ -1,13 +1,24 @@
const TokenKey = 'Admin-Token' import useUserStore from "@/stores/user";
const TokenKey = "Admin-Token";
export function getToken() { export function getToken() {
return localStorage.getItem(TokenKey) return localStorage.getItem(TokenKey);
} }
export function setToken(token) { export function setToken(token) {
return localStorage.setItem(TokenKey, token) return localStorage.setItem(TokenKey, token);
} }
export function removeToken() { 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,
};
} }

View File

@@ -106,6 +106,7 @@ import { ref, reactive, watch, computed } from "vue";
import { useRoute, useRouter } from "vue-router"; import { useRoute, useRouter } from "vue-router";
import BottomInfo from "@/components/BottomInfo.vue"; import BottomInfo from "@/components/BottomInfo.vue";
import useUserStore from "@/stores/user"; import useUserStore from "@/stores/user";
import { getPermission } from "@/utils/auth";
//数据定义 //数据定义
const route = useRoute(); const route = useRoute();
@@ -159,10 +160,9 @@ const loadDiscussList = async () => {
}; };
//进入添加主题页面 //进入添加主题页面
const { isHasPermission } = getPermission("bbs:discuss:add");
const isEditArticle = computed( const isEditArticle = computed(
() => () => isHasPermission && !(route.params.isPublish === "false" ? false : true)
useUserStore().hasPermissions &&
!(route.params.isPublish === "false" ? false : true)
); );
const enterEditArticle = () => { const enterEditArticle = () => {
if (isEditArticle.value) { if (isEditArticle.value) {