docs: dev status round 14 — P5.7 task edit restrictions

This commit is contained in:
zhi
2026-03-17 12:04:59 +00:00
parent c3b59f7c91
commit 92c0c09df7

View File

@@ -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` 零错误通过
- 已 commitbackend `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. 背景