SuperAPI AI 工具集

epic-permissions

通用与其它

查看项目

更新于 10-15 21:38

技能介绍

用途:本技能用于在 Epic Stack 中实现基于角色的访问控制(RBAC),包括服务端与客户端权限校验、创建新权限或角色、限制路由或操作访问,以及实现 own 与 any 的细粒度权限。

主要能力:采用 RBAC 模型,用户拥有角色,角色拥有权限,用户权限为其所有角色权限的并集。权限字符串格式为 action:entity:access,例如 create:note:own、read:note:any、delete:user:any。Prisma 中定义 Permission、Role、User 模型,Permission 含 action、entity、access、description,并以 @@unique([action, entity, access]) 保证唯一。

使用方式:服务端使用 requireUserWithPermission(request, 'delete:note:own') 或 requireUserWithRole(request, 'admin') 校验,无权限时抛出 403。客户端使用 userHasPermission(user, permission) 与 userHasRole(user, 'admin') 控制 UI 显示。类型方面可使用 PermissionString 与 parsePermissionString。权限与角色通常在 prisma/seed.ts 中创建并关联,用户创建或更新时通过 connect 分配角色。

适用场景:需要显式权限检查的 action/loader、仅管理员可访问的路由、根据所有权显示编辑或删除按钮、以及新增实体权限并分配给角色。

限制与注意:必须始终在服务端校验权限,不能只依赖客户端;需显式判断 own 与 any;避免隐式权限检查;权限检查抛出的错误需由 ErrorBoundary 处理;应使用类型保证安全。资料未提供具体安装命令、收费或平台信息。