权限判断
ts
/**
* 检查用户是否具有特定权限的函数
* @param nodePermission - 需要检查的权限数组
* @returns 返回布尔值,表示用户是否具有所需权限
*/
export const hasPermission = (nodePermission: string[]) => {
// const ALL_PERMISSION = '$#@A_z!' // 隐藏的测试Code
const user = store.getters[VuexEvent.GET_CURRENT_USER]; // 获取当前用户信息
const permissionCode = user?.role?.jurisdiction.name || ""; // 获取用户权限代码,如果不存在则为空字符串
// 如果是root用户或sysadmin用户,直接返回true
if (permissionCode === "root" || user?.username === "sysadmin") {
return true;
}
const userPermission = store.getters[VuexEvent.GET_PERMISSIONS] || []; // 获取用户权限列表,如果不存在则为空数组
let isPermission = false; // 初始化权限检查结果为false
// 如果需要检查的权限数组存在且长度大于0
if (nodePermission?.length > 0) {
// 检查用户权限列表中是否包含所需权限
isPermission = userPermission.some((role: any) => {
return nodePermission.includes(role);
});
} else {
// 如果没有需要检查的权限,默认返回true
isPermission = true;
}
return isPermission; // 返回最终的权限检查结果
};1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27