From fb510ff180ba09e44377a6c962863c44a87ae249 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Fri, 18 Oct 2024 14:24:16 +0800 Subject: [PATCH] Refactor permission utility function --- src/@core/utils/permission.ts | 19 ------------------- src/components/cards/UserCard.vue | 5 ++--- src/layouts/components/DefaultLayout.vue | 5 +---- src/store/auth.ts | 24 +----------------------- 4 files changed, 4 insertions(+), 49 deletions(-) delete mode 100644 src/@core/utils/permission.ts diff --git a/src/@core/utils/permission.ts b/src/@core/utils/permission.ts deleted file mode 100644 index 850121eb..00000000 --- a/src/@core/utils/permission.ts +++ /dev/null @@ -1,19 +0,0 @@ -import store from '@/store' - -// 检查是否有权限 -export function hasPermission(permission: string | null = null) { - if (!permission) return true - // permission是一个以.分隔的字符串,例如:'user.create' - const permissionList = permission.split('.') - let permissions_obj = store.state.auth.permissions - for (const element of permissionList) { - if (!permissions_obj[element]) { - return false - } else if (typeof permissions_obj[element] === 'object') { - permissions_obj = permissions_obj[element] - } else { - return true - } - } - return false -} diff --git a/src/components/cards/UserCard.vue b/src/components/cards/UserCard.vue index ee309a49..55943259 100644 --- a/src/components/cards/UserCard.vue +++ b/src/components/cards/UserCard.vue @@ -5,7 +5,6 @@ import store from '@/store' import avatar1 from '@images/avatars/avatar-1.png' import { useToast } from 'vue-toast-notification' import { useConfirm } from 'vuetify-use-dialog' -import { hasPermission } from '@/@core/utils/permission' import UserAddEditDialog from '@/components/dialog/UserAddEditDialog.vue' // 定义输入变量 @@ -87,8 +86,8 @@ function editUser() { // 计算是否有用户编辑权限 const canEditUser = computed(() => { - if (store.state.auth.superUser) return true - return hasPermission('admin') || hasPermission('usermanage') + if (store.state.auth.superUser && props.user.name !== currentLoginUser) return true + return false }) // 计算是否有用户管理权限 diff --git a/src/layouts/components/DefaultLayout.vue b/src/layouts/components/DefaultLayout.vue index c4dbf120..c95f45bd 100644 --- a/src/layouts/components/DefaultLayout.vue +++ b/src/layouts/components/DefaultLayout.vue @@ -12,7 +12,6 @@ import store from '@/store' import { SystemNavMenus } from '@/router/menu' import { NavMenu } from '@/@layouts/types' import { useDisplay } from 'vuetify' -import { hasPermission } from '@/@core/utils/permission' const display = useDisplay() const appMode = computed(() => { @@ -39,9 +38,7 @@ const systemMenus = ref([]) // 根据分类获取菜单列表 const getMenuList = (header: string) => { - return SystemNavMenus.filter( - (item: NavMenu) => item.header === header && (superUser || hasPermission(item.permission)), - ) + return SystemNavMenus.filter((item: NavMenu) => item.header === header && superUser) } // 返回上一页 diff --git a/src/store/auth.ts b/src/store/auth.ts index 518b8b8f..b91a52a3 100644 --- a/src/store/auth.ts +++ b/src/store/auth.ts @@ -28,29 +28,7 @@ const authModule: Module = { avatar: '', // 头像 originalPath: null, // 原始路径 level: 1, // 用户认证等级 1-未认证 2-已认证 - permissions: { - admin: false, // 管理员 - usermanage: false, // 用户管理 - dashboard: true, //仪表板 - ranking: true, // 推荐榜单 - resource: { - search: false, // 搜索站点资源 - download: false, // 下载站点资源 - }, - subscribe: { - movie: true, // 查看电影订阅 - tv: true, // 电视剧订阅 - request: true, // 提交订阅请求 - autopass: false, // 订阅请求自动批准 - approve: false, // 审批订阅请求 - calendar: true, // 查看订阅日历 - manage: false, // 管理所有订阅 - }, - downloading: { - view: true, // 查看正在下载任务 - manager: false, // 管理正在下载任务 - }, - }, + permissions: {}, }, mutations: { setToken(state, token: string) {