潘志宝
2024-09-18 6d9c089cebac440c78573e9fa95190ee9ead674c
提交 | 用户 | 时间
820397 1 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
H 2
3 const { t } = useI18n() // 国际化
4
5 /**
6  * 字符权限校验
7  * @param {Array} value 校验值
8  * @returns {Boolean}
9  */
10 export function checkPermi(value: string[]) {
11   if (value && value instanceof Array && value.length > 0) {
12     const { wsCache } = useCache()
13     const permissionDatas = value
14     const all_permission = '*:*:*'
15     const permissions = wsCache.get(CACHE_KEY.USER).permissions
16     const hasPermission = permissions.some((permission) => {
17       return all_permission === permission || permissionDatas.includes(permission)
18     })
19     return !!hasPermission
20   } else {
21     console.error(t('permission.hasPermission'))
22     return false
23   }
24 }
25
26 /**
27  * 角色权限校验
28  * @param {string[]} value 校验值
29  * @returns {Boolean}
30  */
31 export function checkRole(value: string[]) {
32   if (value && value instanceof Array && value.length > 0) {
33     const { wsCache } = useCache()
34     const permissionRoles = value
35     const super_admin = 'admin'
36     const roles = wsCache.get(CACHE_KEY.USER).roles
37     const hasRole = roles.some((role) => {
38       return super_admin === role || permissionRoles.includes(role)
39     })
40     return !!hasRole
41   } else {
42     console.error(t('permission.hasRole'))
43     return false
44   }
45 }