feat: 按创建人隔离采集采购任务 (#127)
This commit is contained in:
@@ -37,6 +37,8 @@
|
||||
- 最后管理员保护:不能禁用最后一个有效管理员。
|
||||
- 客户端归属:一人多客户端、一台客户端唯一当前负责人、转交/解绑历史完整;
|
||||
- 归属权限:采购员只看到自己的客户端,不能绑定、解绑或删除;禁用采购员不能成为新目标。
|
||||
- 任务创建人隔离:采购员列表/统计/分页只包含本人任务,伪造创建人参数不能扩大范围;
|
||||
- 任务越权:他人详情表现为 404,混合本人/他人/不存在编号的批量删除完整回滚。
|
||||
|
||||
`[必须]` 导入相关的测试用 `admin/testdata/` 下的**小样本**(几十行),
|
||||
不要读完整报表。
|
||||
@@ -77,6 +79,8 @@
|
||||
- Client API 不返回登录页或 302 重定向。
|
||||
- 管理员客户端页显示全量和负责人;采购员客户端页只读且只显示自己的客户端;
|
||||
- 绑定/转交弹窗有明确标签和焦点,解绑有二次确认,操作结果可被辅助技术读到。
|
||||
- 管理员采集采购页可按正常账号、禁用账号和历史任务筛选并显示创建人;采购员不显示
|
||||
创建人筛选和列表列,详情仍显示创建人。
|
||||
|
||||
### 2.4 契约测试
|
||||
|
||||
@@ -124,6 +128,8 @@
|
||||
- `[必须]` 管理员自助修改密码必须验证当前密码,目标账号从当前 Session 取得;成功后撤销该账号全部 Session 并重新登录。
|
||||
- `[必须]` `/setup`、`/login`、`/logout`、`/account/change-password` 和用户管理写操作都保留 CSRF 防护。
|
||||
- `[必须]` 客户端绑定、转交、解绑和删除只能由管理员执行,并保留 CSRF 防护。
|
||||
- `[必须]` 任务列表、统计、分页、详情和删除按同一创建人范围授权;采购员提交 URL 或
|
||||
表单中的其他创建人/任务编号不能扩大范围,混合越权批量删除必须全部回滚。
|
||||
- `[必须]` Web 登录中间件只保护 HTML 路由,不得覆盖 `/api/v1/client/*`。
|
||||
- `[建议]` 对连续登录失败做简单限速;错误提示不区分用户名不存在和密码错误。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user