From fe75cffbf3bae6777aa2794fd89fa5dc37f5df8d Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期二, 15 七月 2025 10:11:23 +0800 Subject: [PATCH] 项目初始化 --- src/plugins/auth.ts | 83 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 83 insertions(+), 0 deletions(-) diff --git a/src/plugins/auth.ts b/src/plugins/auth.ts new file mode 100644 index 0000000..ebf8bf4 --- /dev/null +++ b/src/plugins/auth.ts @@ -0,0 +1,83 @@ +import useUserStore from "@/store/modules/user"; +function authPermission(permission: string): boolean { + const all_permission = "*:*:*"; + const permissions: Array<string> = useUserStore().permissions; + if (permission && permission.length > 0) { + return permissions.some((v) => { + return all_permission === v || v === permission; + }); + } else { + return false; + } +} + +function authRole(role: string): boolean { + const super_admin = "admin"; + const roles: Array<string> = useUserStore().roles; + if (role && role.length > 0) { + return roles.some((v) => { + return super_admin === v || v === role; + }); + } else { + return false; + } +} + +export default { + /** + * 楠岃瘉鐢ㄦ埛鏄惁鍏峰鏌愭潈闄� + * @param permission 鏉冮檺绗� + * @returns + */ + hasPermi(permission: string): boolean { + return authPermission(permission); + }, + /** + * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾鏉冮檺锛屽彧闇�鍖呭惈鍏朵腑涓�涓� + * @param permissions 鏉冮檺绗︽暟缁� + * @returns + */ + hasPermiOr(permissions: Array<string>): boolean { + return permissions.some((item) => { + return authPermission(item); + }); + }, + /** + * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾鏉冮檺锛屽繀椤诲叏閮ㄦ嫢鏈� + * @param permissions 鏉冮檺绗︽暟缁� + * @returns + */ + hasPermiAnd(permissions: Array<string>): boolean { + return permissions.every((item) => { + return authPermission(item); + }); + }, + /** + * 楠岃瘉鐢ㄦ埛鏄惁鍏峰鏌愯鑹� + * @param role 瑙掕壊 + * @returns + */ + hasRole(role: string): boolean { + return authRole(role); + }, + /** + * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾瑙掕壊锛屽彧闇�鍖呭惈鍏朵腑涓�涓� + * @param roles 瑙掕壊鏁扮粍 + * @returns + */ + hasRoleOr(roles: Array<string>): boolean { + return roles.some((item) => { + return authRole(item); + }); + }, + /** + * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾瑙掕壊锛屽繀椤诲叏閮ㄦ嫢鏈� + * @param roles 瑙掕壊鏁扮粍 + * @returns + */ + hasRoleAnd(roles: Array<string>): boolean { + return roles.every((item) => { + return authRole(item); + }); + }, +}; -- Gitblit v1.9.3