nova-admin/src/hooks/usePermission.ts
2024-04-01 22:48:36 +08:00

33 lines
642 B
TypeScript

import { isArray, isString } from 'radash'
import { useAuthStore } from '@/store'
/** 权限判断 */
export function usePermission() {
const authStore = useAuthStore()
function hasPermission(
permission: Auth.RoleType | Auth.RoleType[] | undefined,
) {
if (!permission)
return true
if (!authStore.userInfo)
return false
const { role } = authStore.userInfo
let has = role === 'super'
if (!has) {
if (isArray(permission))
has = permission.includes(role)
if (isString(permission))
has = permission === role
}
return has
}
return {
hasPermission,
}
}