feat:update 3 4
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# 审计日志缺失反例
|
||||
|
||||
## 场景
|
||||
|
||||
工单指派负责人成功,但没有记录审计日志。
|
||||
|
||||
## 问题表现
|
||||
|
||||
| 操作 | 结果 |
|
||||
| --- | --- |
|
||||
| 张三将工单指派给李四 | 工单负责人变更成功 |
|
||||
| 查询审计日志 | 没有负责人变更记录 |
|
||||
|
||||
## 风险
|
||||
|
||||
无法追溯负责人变化,出现延误或争议时无法定位责任。
|
||||
|
||||
## 修复要求
|
||||
|
||||
1. 指派成功后写审计日志。
|
||||
2. 记录原负责人、新负责人、操作人、时间、来源。
|
||||
3. 指派失败不写成功审计。
|
||||
4. 多步写入需要事务一致性。
|
||||
|
||||
## 验收
|
||||
|
||||
| 操作 | 预期 |
|
||||
| --- | --- |
|
||||
| 指派成功 | 审计列表出现 ASSIGN 记录 |
|
||||
| 指派失败 | 不出现成功审计 |
|
||||
| 查询详情 | 审计记录可在工单详情查看 |
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# 权限遗漏反例
|
||||
|
||||
## 场景
|
||||
|
||||
工单删除按钮在前端按权限隐藏,但后端删除接口没有权限校验。
|
||||
|
||||
## 问题代码表现
|
||||
|
||||
| 层级 | 表现 |
|
||||
| --- | --- |
|
||||
| 前端 | 普通研发账号看不到删除按钮 |
|
||||
| 后端 | 直接请求 `/workOrder/delete` 仍可删除 |
|
||||
| 审计 | 删除记录可能缺失 |
|
||||
|
||||
## 风险
|
||||
|
||||
攻击者或误操作用户可以绕过前端直接调用接口删除工单。
|
||||
|
||||
## 修复要求
|
||||
|
||||
1. 后端删除接口增加权限校验。
|
||||
2. 删除前校验数据范围。
|
||||
3. 删除成功写审计日志。
|
||||
4. 无权限账号直接请求接口返回 403 或业务拒绝。
|
||||
|
||||
## 验收
|
||||
|
||||
| 账号 | 操作 | 预期 |
|
||||
| --- | --- | --- |
|
||||
| 管理员 | 删除允许删除的工单 | 成功并写审计 |
|
||||
| 普通研发 | 直接请求删除接口 | 失败 |
|
||||
| 只读用户 | 前端访问删除按钮 | 不可见 |
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# 看板指标口径不清反例
|
||||
|
||||
## 场景
|
||||
|
||||
看板展示“平均关闭周期”,但没有说明从哪个时间到哪个时间。
|
||||
|
||||
## 问题表现
|
||||
|
||||
| 指标 | 当前说明 |
|
||||
| --- | --- |
|
||||
| 平均关闭周期 | 最近工单平均处理时间 |
|
||||
|
||||
## 风险
|
||||
|
||||
不同人理解不同:可能是创建到关闭,也可能是开始处理到关闭,导致管理判断失真。
|
||||
|
||||
## 修复要求
|
||||
|
||||
1. 明确定义为 `close_time - create_time` 或其他确定口径。
|
||||
2. 明确是否排除未关闭工单。
|
||||
3. 明确时间范围过滤字段。
|
||||
4. 用样例数据手工校验。
|
||||
|
||||
## 验收
|
||||
|
||||
| 样例 | 预期 |
|
||||
| --- | --- |
|
||||
| 工单 A 创建 1 日、关闭 3 日 | 周期 2 天 |
|
||||
| 未关闭工单 | 不计入平均关闭周期 |
|
||||
| 过滤 7 月 | 只统计 7 月范围内符合口径的数据 |
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# 非法状态流转反例
|
||||
|
||||
## 场景
|
||||
|
||||
已关闭工单可以直接被改回处理中。
|
||||
|
||||
## 问题表现
|
||||
|
||||
| 当前状态 | 动作 | 结果 |
|
||||
| --- | --- | --- |
|
||||
| 已关闭 | 开始处理 | 状态变成处理中 |
|
||||
|
||||
## 风险
|
||||
|
||||
已关闭工单被重新打开但没有重开原因、没有审计、没有负责人确认,导致统计和责任链失真。
|
||||
|
||||
## 修复要求
|
||||
|
||||
1. Service 层集中校验状态流转。
|
||||
2. 已关闭工单只能通过“重新打开”动作变为新建。
|
||||
3. 重新打开必须填写原因。
|
||||
4. 所有成功流转写审计日志。
|
||||
|
||||
## 验收
|
||||
|
||||
| 操作 | 预期 |
|
||||
| --- | --- |
|
||||
| closed -> processing | 失败,状态不变 |
|
||||
| closed -> reopen -> new | 成功,必须有原因 |
|
||||
| 重开成功 | 审计记录 oldValue=closed, newValue=new |
|
||||
|
||||
Reference in New Issue
Block a user