Files
TARE-Learn/slidev/pages/day4/m1-rbac-permission-model.md
T
2026-07-03 00:26:47 +08:00

6.3 KiB
Raw Blame History

模块 1:RBAC 权限模型设计

工单模块不是普通 CRUD。复杂度不在字段多少,而在谁能看、谁能改、什么条件下能改,以及出问题后能否追溯。

管理员
负责人
研发
测试
只读用户

先矩阵,后代码

错误顺序
  1. 先生成页面和接口
  2. 再临时隐藏按钮
  3. 最后补权限说明
推荐顺序
  1. 先定义角色和动作
  2. 再生成权限矩阵
  3. 最后落到菜单、按钮、接口、数据范围
权限矩阵是后续代码生成、Review 和验收的依据,不是交付后的补充说明。

RBAC 权限矩阵

功能 管理员 负责人 研发 测试 只读
查看列表 Y 条件允许 条件允许 条件允许 条件允许
查看详情 Y 条件允许 条件允许 条件允许 条件允许
新增工单 Y Y Y Y N
编辑工单 Y 条件允许 条件允许 条件允许 N
删除工单 Y N N N N
指派工单 Y 条件允许 N N N
提交验证 Y 条件允许 Y N N
关闭工单 Y 条件允许 N Y N
查看审计 Y 条件允许 条件允许 条件允许 N
查看看板 Y Y 条件允许 条件允许 条件允许

条件允许要展开

条件类型 示例 验收方式
数据范围 只能看本人、本人团队、本人负责的工单 不同账号列表数量不同
状态限制 只有待验证才能关闭 非目标状态接口返回拒绝
角色叠加 负责人兼管理员时按更高权限 用双角色账号验证
字段限制 研发只能改处理说明,不能改优先级 提交非法字段被拒绝
时间限制 已关闭工单超过窗口不能重开 超时重开失败

权限矩阵 Prompt

请基于 JeecgBoot 工单模块设计 RBAC 权限矩阵。

角色:
管理员、负责人、研发、测试、只读用户。

功能点:
查看列表、查看详情、新增、编辑、删除、指派、
提交验证、关闭、驳回、查看审计记录、查看看板。

要求:
1. 区分允许、拒绝、条件允许。
2. 条件允许必须展开为数据、状态、字段或时间条件。
3. 每个敏感操作给出后端接口验收方式。
4. 标注哪些权限属于业务待确认。
5. 不要直接生成代码。

AI 容易漏掉的权限风险

风险 表现 Review 问法
前端按钮替代权限 按钮隐藏,但接口可直接调 无权限账号直接请求会怎样
数据范围缺失 所有人看到同一批工单 普通用户能否看到他人数据
条件允许泛化 “条件允许”被实现成允许 条件在哪里校验
审计权限遗漏 审计日志对不该看的人开放 谁能看 old/new value
删除权限过宽 负责人或研发能删除工单 删除是否只限管理员