@aooth/arbac-moost (中文(简体) )
Moost RBAC 一体化——可注入 MoostArbac授权拦截器, @ArbacResource 编号 : @ArbacAction 装饰者, AsArbacDbController 自动接线提供者管道 .as 用户模型.
安装
pnpm add @aooth/arbac-moost @aooth/arbac @aooth/user
文档
完整文件、 API 参考文献和食谱: https://aooth.moost.org/moost/* (中文(简体) )* 联合国
自定义动作处理器——您的责任
这个 @ArbacAuthorize 拦截器 条目 改为 @DbAction 处理器:如果用户缺乏特权,处理器不会运行. 但是它体内的操作者所做的就是在你身上——截取器不跟随二级数据库呼叫或外部副作用.
如果您的处理器从同一个表格读取或写出行, 输入门范围, 将这些调用通过活动范围 . useArbac().getScopes<ArbacDbScope>() 曝光每个事件范围阵列;从那里:
scope.filter- 加入到您的条款中(使用所有范围过滤器的结合通过mergeScopeFilters从@aooth/arbac不只是第一个.scope.set- 覆盖到任何插入/更新的有效载荷 之后 所以瞄准镜设定胜过呼叫器提供值.scope.projection——将任何自定义SELECT限制在被允许的田地的结合.
演示在 packages/e2e-demo/src/controllers/_helpers.ts 显示公约scopedFilter, (中文(简体) ), scopedSet;测试 ACT-08 内 packages/e2e-demo/test/arbac-actions.spec.ts 使用此模式的处理器正确执行行级范围.
如果您的处理器向不同的系统(审计日志,缓存,外部API,兄弟姐妹表)说话,或者有特殊逻辑(交叉租户汇总,管理员出逃舱口),则将范围线到系统暴露的任何表面——没有自动传播,信任决定在处理器中保持清晰.
为什么不从结构上强制执行? 框架不能在动作入场点知道操作者打算读写什么. 处理器呼叫远程服务,跨表格交易,或者只有管理员的分支不会用自动行级闸门来清空地作曲. 明确范围执法使信托决定成为可识别代码审查的文物。 权衡的是,一个忘却的贡献者可以绕过它——通过代码审查和ACT-08风格的回归测试来缓解.
许可证
麻省理工学院