权限常量和normalize权限列表函数抽离
This commit is contained in:
parent
7d91985bb2
commit
7cca406478
|
|
@ -1,31 +1,5 @@
|
|||
import { useUserStore } from '@/store/user'
|
||||
|
||||
const ADMIN_ROLES = ['admin', 'sys_admin']
|
||||
|
||||
const normalizePermissionList = (permissions) => {
|
||||
if (!permissions) return []
|
||||
if (Array.isArray(permissions)) return permissions.filter(Boolean)
|
||||
if (typeof permissions === 'object') {
|
||||
return Object.keys(permissions).filter(key => !!permissions[key])
|
||||
}
|
||||
if (typeof permissions === 'string') {
|
||||
return permissions
|
||||
.split(',')
|
||||
.map((perm) => perm.trim())
|
||||
.filter(Boolean)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
return []
|
||||
}
|
||||
import { ADMIN_ROLES, normalizePermissions } from '@/utils/permission'
|
||||
|
||||
const resolveRequiredPermissions = (value) => {
|
||||
if (!value) return []
|
||||
|
|
@ -50,7 +24,7 @@ const evaluatePermission = (userStore, requiredPermissions, modifiers = {}) => {
|
|||
const isAdmin = Array.isArray(userRoles) && userRoles.some((role) => ADMIN_ROLES.includes(role))
|
||||
if (isAdmin) return true
|
||||
|
||||
const userPermissions = normalizePermissionList(userInfo?.permissions)
|
||||
const userPermissions = normalizePermissions(userInfo?.permissions)
|
||||
if (userPermissions.length === 0) return false
|
||||
|
||||
if (requireAll) {
|
||||
|
|
|
|||
|
|
@ -1,21 +1,5 @@
|
|||
import { defineStore } from 'pinia'
|
||||
|
||||
const ADMIN_ROLES = ['admin', 'sys_admin']
|
||||
|
||||
const normalizePermissions = (permissions) => {
|
||||
if (!permissions) return []
|
||||
if (Array.isArray(permissions)) return permissions.filter(Boolean)
|
||||
if (typeof permissions === 'object') {
|
||||
return Object.keys(permissions).filter(key => !!permissions[key])
|
||||
}
|
||||
if (typeof permissions === 'string') {
|
||||
return permissions
|
||||
.split(',')
|
||||
.map((perm) => perm.trim())
|
||||
.filter(Boolean)
|
||||
}
|
||||
return []
|
||||
}
|
||||
import { ADMIN_ROLES, normalizePermissions } from '@/utils/permission'
|
||||
|
||||
/**
|
||||
* 用户信息 Store
|
||||
|
|
|
|||
17
utils/permission.js
Normal file
17
utils/permission.js
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
export const ADMIN_ROLES = ['admin', 'sys_admin']
|
||||
|
||||
export const normalizePermissions = (permissions) => {
|
||||
if (!permissions) return []
|
||||
if (Array.isArray(permissions)) return permissions.filter(Boolean)
|
||||
if (typeof permissions === 'object') {
|
||||
return Object.values(permissions).filter((perm) => !!perm)
|
||||
}
|
||||
if (typeof permissions === 'string') {
|
||||
return permissions
|
||||
.split(',')
|
||||
.map((perm) => perm.trim())
|
||||
.filter(Boolean)
|
||||
}
|
||||
return []
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user