SuperAPI AI 工具集

rbac-permissions-builder

通用与其它

查看项目

更新于 10-16 03:16

技能介绍

RBAC/Permissions Builder 用于实现灵活的角色访问控制(RBAC)。

用途:为应用建立以“资源:操作”为粒度的权限模型,并将权限按角色映射,从而控制路由、控制器与界面元素的可见可用性。

主要能力:

  1. 权限矩阵:用枚举定义权限(如 user:read、user:write、user:delete、post:read、post:write、admin:access),并用 ROLE_PERMISSIONS 将角色映射到权限集合,提供 hasPermission(user, permission) 检查函数。
  2. 路由守卫:以 Express 中间件 requirePermission(...permissions) 实现,未登录返回 401,权限不足返回 403,需全部权限通过。
  3. 策略模式:用策略类处理复杂规则,例如 UserPolicy.canUpdate 允许本人或具备 USER_WRITE 的用户更新,canDelete 禁止删除自己且仅管理员可删。
  4. 资源归属检查:requireOwnership 工具,资源所有者可访问,拥有 ADMIN_ACCESS 者可访问任意资源,否则 403。
  5. UI 权限提示:GET /api/me 返回用户及其 permissions 数组,前端用 usePermission(permission) 判断是否渲染如删除按钮等元素。

必要用法:定义 Permission 枚举与 ROLE_PERMISSIONS;在路由上串联 authenticate 与 requirePermission;控制器内调用策略类;前端通过 /api/me 获取权限列表。代码示例保留原样:requirePermission(Permission.USER_DELETE)、UserPolicy.canUpdate(req.user, targetUser)、usePermission('user:delete')。

适用场景:需要区分普通用户、版主、管理员等角色的 Web 应用与 API 服务。

限制与最佳实践:资料建议权限粒度采用 resource:action、在路由/控制器/UI 多层校验、复杂规则用策略、缓存权限检查、记录权限拒绝日志并测试所有权限路径。具体框架适配、性能数据与实现细节暂未提供。