From e29beed8bd5c7f7fa61efb62236d6bcd65d05b05 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期二, 24 十二月 2024 21:59:25 +0800 Subject: [PATCH] update 优化 hasRoles 方法增加超管判断 --- src/directive/permission/index.ts | 62 +++++++++++++++--------------- 1 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/directive/permission/index.ts b/src/directive/permission/index.ts index c52b949..eb2dccc 100644 --- a/src/directive/permission/index.ts +++ b/src/directive/permission/index.ts @@ -4,41 +4,41 @@ * 鎿嶄綔鏉冮檺澶勭悊 */ export const hasPermi: Directive = { - mounted(el: HTMLElement, binding: DirectiveBinding) { - const { permissions } = useUserStore(); - // 銆屽叾浠栬鑹层�嶆寜閽潈闄愭牎楠� - const { value } = binding; - if (value && value instanceof Array && value.length > 0) { - const hasPermission = permissions.some((permi) => { - return permi === '*:*:*' || value.includes(permi); - }); - if (!hasPermission) { - el.parentNode && el.parentNode.removeChild(el); - return false; - } - } else { - throw new Error("check perms! Like v-has-permi=\"['sys:user:add','sys:user:edit']\""); - } - } + mounted(el: HTMLElement, binding: DirectiveBinding) { + const { permissions } = useUserStore(); + // 銆屽叾浠栬鑹层�嶆寜閽潈闄愭牎楠� + const { value } = binding; + if (value && value instanceof Array && value.length > 0) { + const hasPermission = permissions.some((permi: string) => { + return permi === '*:*:*' || value.includes(permi); + }); + if (!hasPermission) { + el.parentNode && el.parentNode.removeChild(el); + return false; + } + } else { + throw new Error("check perms! Like v-has-permi=\"['system:user:add','system:user:edit']\""); + } + } }; /** * 瑙掕壊鏉冮檺澶勭悊 */ export const hasRoles: Directive = { - mounted(el: HTMLElement, binding: DirectiveBinding) { - const { value } = binding; - const { roles } = useUserStore(); - if (value && value instanceof Array && value.length > 0) { - const hasRole = roles.some((role) => { - return role === 'admin' || value.includes(role); - }); - if (!hasRole) { - el.parentNode && el.parentNode.removeChild(el); - return false; - } - } else { - throw new Error("check roles! Like v-has-roles=\"['admin','test']\""); - } - } + mounted(el: HTMLElement, binding: DirectiveBinding) { + const { value } = binding; + const { roles } = useUserStore(); + if (value && value instanceof Array && value.length > 0) { + const hasRole = roles.some((role: string) => { + return role === 'superadmin' || role === 'admin' || value.includes(role); + }); + if (!hasRole) { + el.parentNode && el.parentNode.removeChild(el); + return false; + } + } else { + throw new Error("check roles! Like v-has-roles=\"['admin','test']\""); + } + } }; -- Gitblit v1.9.3