Skip to content

permissionSatisfies

Admin RBAC 权限匹配纯函数,与 API PermissionsGuard 使用同一套规则。前端 usePermission().can() 与后端 @RequirePermissions 应共用此逻辑。

函数签名

typescript
function permissionSatisfies(userPermissions: string[], required: string): boolean

function anyPermissionSatisfies(userPermissions: string[], required: string[]): boolean

function getPermissionCodesFromPayload(
  payload: { permissions?: unknown } | null | undefined,
): string[]

function payloadHasPermission(
  payload: { permissions?: unknown } | null | undefined,
  required: string,
): boolean

参数

参数名类型必填说明
userPermissionsstring[]JWT 或会话中的权限 code 列表
requiredstring所需权限 code
payloadobjectpermissions 字段的 JWT payload

返回值

类型说明
boolean是否满足权限(anyPermissionSatisfies 为任一满足)
string[]getPermissionCodesFromPayload 规范化后的 code 列表

工作原理

条件结果
用户权限含 *通过
精确匹配 required code通过
required 以 .view 结尾,且用户持有同资源 .edit通过
其他不通过

示例:持有 business.product.edit 时,permissionSatisfies(perms, 'business.product.view')true

相关文档