docs: dev status round 14 — P5.7 task edit restrictions
This commit is contained in:
@@ -454,6 +454,42 @@
|
||||
- 或 P9.3 前端 task 编辑权限守卫(按 assignee/status 显示/隐藏编辑入口)
|
||||
- 或 P5.7 后端 task PATCH 接口编辑权限服务端防守
|
||||
|
||||
### 2026-03-17 12:00 UTC(第 14 轮:P5.7 Task 编辑权限服务端防守 + P9.3 前端守卫)
|
||||
|
||||
本轮做了什么:
|
||||
- 实现 P5.7 后端 task PATCH 接口的 status+assignee 编辑限制
|
||||
- 实现 P9.3 前端 task 编辑按钮的 status+assignee 可见性守卫
|
||||
- **后端 PATCH 接口**(tasks.py):
|
||||
- `undergoing` / `completed` / `closed`:禁止修改 body 字段(status 字段仍可通过 PATCH 传递以走状态机)
|
||||
- `open` + `assignee_id` 非空:仅 assignee 本人或 admin 可编辑 body 字段,否则返回 403
|
||||
- `open` + `assignee_id` 为空 / `pending`:沿用原有 `ensure_can_edit_task` 通用权限
|
||||
- **前端 TaskDetailPage**(P9.3):
|
||||
- `canEditTask` 重构为考虑 status + assignee 的完整守卫
|
||||
- `undergoing/completed/closed`:Edit Task 按钮不显示
|
||||
- `open + assigned`:仅 assignee 和 admin 看到编辑按钮
|
||||
- `open + unassigned` / `pending`:项目成员均可编辑
|
||||
- 移除冗余的 `!isTerminal && task.status !== 'undergoing'` 外层条件(已内化到 canEditTask)
|
||||
|
||||
改了哪些关键文件:
|
||||
- `HarborForge.Backend/app/api/routers/tasks.py` — PATCH 接口新增 P5.7 守卫(+31 行)
|
||||
- `HarborForge.Frontend/src/pages/TaskDetailPage.tsx` — canEditTask 重构
|
||||
|
||||
验证结果:
|
||||
- Python AST 语法检查通过
|
||||
- `npx tsc --noEmit` 零错误通过
|
||||
- 已 commit:backend `7542f2d`,frontend `638427d`
|
||||
|
||||
当前阻塞/风险:
|
||||
- P2 权限骨架仍未落地(close/reopen 权限未注册)
|
||||
- feature story task 在 freeze 后的编辑限制(P3.6 补充)尚未加入 task PATCH 接口
|
||||
- batch transition 接口尚未同步 P5.3/P5.4 校验
|
||||
- 无本地 MySQL/运行环境做集成验证
|
||||
|
||||
下一轮最建议继续做什么:
|
||||
- P10.7 前端 propose 编辑限制(open 时允许编辑 title/description,其他状态禁止)
|
||||
- 或 P9.6 前端创建 task 限制(禁止通用 create 创建 feature story / release maintenance task)
|
||||
- 或 P5.2 补全 pending→open 依赖检查(通用依赖检查 helper)
|
||||
|
||||
---
|
||||
|
||||
## 1. 背景
|
||||
|
||||
Reference in New Issue
Block a user