From 7236c4e90c7c2091d54b6024c0cd7cb7454d9d17 Mon Sep 17 00:00:00 2001 From: zhi Date: Tue, 17 Mar 2026 19:03:12 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20dev=20status=20round=2021=20=E2=80=94?= =?UTF-8?q?=20P2.2=20default=20role=20seeds?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HarborForge.Backend | 2 +- docs/milestone-propose-requirements.md | 41 ++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/HarborForge.Backend b/HarborForge.Backend index c6b14ac..8e38d4c 160000 --- a/HarborForge.Backend +++ b/HarborForge.Backend @@ -1 +1 @@ -Subproject commit c6b14ac25fa07a29715213431fe37e26c5f3daee +Subproject commit 8e38d4cf4d8bbddfd0d0cca13e0061e90dadded9 diff --git a/docs/milestone-propose-requirements.md b/docs/milestone-propose-requirements.md index c3947b3..530ee8c 100644 --- a/docs/milestone-propose-requirements.md +++ b/docs/milestone-propose-requirements.md @@ -691,6 +691,47 @@ - 或 P11.1 前端权限列表展示新增权限 - 或 P12.1 CLI 更新 propose 子命令 +### 2026-03-17 19:00 UTC(第 21 轮:P2.2 默认角色权限种子 — mgr + dev 角色) + +本轮做了什么: +- 实现 P2.2:在 `init_wizard.py` 新增 `mgr` 和 `dev` 两个默认角色,各带预置权限 +- **mgr(Manager)权限**: + - 项目管理:project.read/write/manage_members + - 全量 task/milestone CRUD + - 所有新增动作权限:milestone.freeze/start/close、task.close/reopen_closed/reopen_completed、propose.accept/reject/reopen + - monitor.read +- **dev(Developer)权限**: + - project.read(只读项目信息) + - task.create/read/write(日常 task 操作) + - milestone.read(只读 milestone) + - task.close/reopen_closed/reopen_completed(task 状态管理) + - monitor.read + - 不含 milestone 动作权限和 propose 审批权限(这些归 mgr/admin) +- 重构 `init_admin_role()` 为统一的角色种子系统: + - `_DEFAULT_ROLES` 列表定义所有默认角色 + 权限集 + - `_ensure_role()` 幂等创建角色 + - `_sync_role_permissions()` 增量同步权限(只加不删,不影响手动配置) +- admin 仍获全量权限,guest 仍仅获 `*.read` 权限 + +改了哪些关键文件: +- `HarborForge.Backend/app/init_wizard.py` — 重构角色种子系统(+84 行,-52 行) + +验证结果: +- Python AST 语法检查通过 +- 前端 `tsc --noEmit` 零错误(无回归) +- 已 commit:backend `8e38d4c` + +当前阻塞/风险: +- 权限同步是增量模式(只加不删),已有部署中手动配置的权限不会被移除,但也意味着降级角色需手动操作 +- 前端按钮尚未根据用户权限做可见性控制(P11) +- batch transition 接口尚未同步 P5.3/P5.4 校验 +- 无本地 MySQL/运行环境做集成验证 + +下一轮最建议继续做什么: +- P11.1 前端权限列表展示新增权限(让管理界面能看到和管理 9 个新权限) +- 或 P12.1 CLI 更新 propose 子命令 +- 或 P5.4 补全后端 batch transition 的 P5.3/P5.4 校验同步 + --- ## 1. 背景