67837df8d0
- 新增全套考试卷、评估卷、参考答案与考试培训包模板 - 修正slidev培训课件:调整模块标题、链路图缩放,替换工单示例为通用业务对象 - 修正课堂红线表述为证据红线,将小组作业调整为个人作业要求 - 新增权限、状态流转、审计日志、看板指标四类可复用业务规则块 - 整理AI工程技能交付包,迁移旧资产至客户专属交付包并统一术语 - 新增考试输出模板与TRAE使用记录文档
7.7 KiB
7.7 KiB
模块 1:RBAC 权限模型设计
工单模块不是普通 CRUD。复杂度不在字段多少,而在谁能看、谁能改、什么条件下能改,以及出问题后能否追溯。
管理员
负责人
研发
测试
只读用户
先矩阵,后代码
错误顺序
- 先生成页面和接口
- 再临时隐藏按钮
- 最后补权限说明
推荐顺序
- 先定义角色和动作
- 再生成权限矩阵
- 最后落到菜单、按钮、接口、数据范围
权限矩阵是后续代码生成、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 或筛选条件。