Files
TARE-Learn/slidev/pages/day4/m1-rbac-permission-model.md
T
smart 67837df8d0 docs: 更新TRA编程培训课程材料、课件与AI技能交付包
- 新增全套考试卷、评估卷、参考答案与考试培训包模板
- 修正slidev培训课件:调整模块标题、链路图缩放,替换工单示例为通用业务对象
- 修正课堂红线表述为证据红线,将小组作业调整为个人作业要求
- 新增权限、状态流转、审计日志、看板指标四类可复用业务规则块
- 整理AI工程技能交付包,迁移旧资产至客户专属交付包并统一术语
- 新增考试输出模板与TRAE使用记录文档
2026-08-08 11:00:36 +08:00

7.7 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
删除权限过宽 负责人或研发能删除工单 删除是否只限管理员

可直接复制到 rules:权限安全

## 敏感操作必须四层校验
- 级别:硬约束
- 适用场景:新增、编辑、删除、指派、状态流转、查看审计、查看看板。
- 必须:同时覆盖页面/菜单权限、按钮权限、后端接口权限、数据范围权限。
- 禁止:只做页面或按钮控制。
- 验收方式:授权角色能完成;未授权角色前端不可见且直接请求接口失败;越权数据访问失败。

## 权限字符必须有来源或标记为建议
- 必须:来自现有菜单、权限配置、前端权限指令、后端鉴权注解或团队规范。
- 禁止:凭空编造权限字符并当成事实。
- 验收方式:权限字符在前端、菜单配置、后端接口之间一致。

## 数据权限不得被查询条件替代
- 必须:后端统一校验当前用户可访问的数据范围。
- 禁止:只依赖前端传入 userId、deptId、tenantId 或筛选条件。