Record the perm-ux child task scope and unit plan
Why: the child task implements the approved permission UX plan U1-U6 on
top of the L1 association contract (afb65c5); governance requires the
scope, component branch strategy and coordination notes on the card
before the first project write.
Evidence: precheck READY receipt /tmp/iam-perm-ux-precheck.json; L1
state verified via task-sync (sync_base a99dbfc, L1 U1 completed).
Impact: task card only (.task/** host-exempt path).
Refs: plan /tmp/iam-permission-ux-plan-20261019-1dehpj7l/plan.md; L1 PR #628
This commit is contained in:
@@ -7,7 +7,9 @@
|
||||
- 分支类型:child;initiative_id:feature-iam-role-permission-linked-capabilities;root_target:main;immediate_target:feature/iam-role-permission-linked-capabilities;accepting_requirements:false;parent_branch:feature/iam-role-permission-linked-capabilities;parent_head_sha:90317d02a746ea3cd25021561ef40e8cd7498963;parent_pr:无;parent_source:origin
|
||||
- 需求分流:verdict=JOIN;selected_initiative=feature/iam-role-permission-linked-capabilities;requirement_sha256=6eab4bfaa1bb158cd0943427d00264a74059b77b967530dc7d7c32f2f9ada0fa;triage_receipt=/tmp/iam-perm-ux-triage.json;receipt_sha256=3dd33a2bd1a128579bd405339b682acbcd4f96c7b980ebb0941cd5c622ccebb7
|
||||
|
||||
- 授权与交付终点:<本次允许的动作与终点;未授权事项写明>
|
||||
- 授权与交付终点:按源码外方案 `/tmp/iam-permission-ux-plan-20261019-1dehpj7l/plan.md`(2026-10-19 评审稿,review.md 三项审阅 clean)实施 U1–U6:Backend 权限展示目录与关联预览合同、原子批量写入与读投影;Frontend 分类角色矩阵与单角色聚焦、用户/角色人员配置、项目有效权限说明;真实浏览器验收与组合交付。终点:子任务 PR 合入所属 L1 分支 `feature/iam-role-permission-linked-capabilities`(PR #628),组件 pin 随本任务推进;不部署、不迁移生产数据、不做日常实例采用(C16 保持 NOT_RUN 直至另行授权)。
|
||||
- 组件分支策略:Backend 工作分支 `feature/iam-perm-ux-backend`(基于 L1 U1 联动分支 `origin/feature/iam-link-u1-capability-association` @ afb65c5,消费其冻结的 `ProjectCreateLinkedActions`/`LinkedCapabilities` 合同);Frontend 工作分支基于组件 origin/main(6db528d,L1 前端单元尚未启动)。
|
||||
- 依赖协调:#628 L1 的 U1(联动 Backend)已完成并推送(afb65c5);L1 U2(单一角色权威)已登记待启动——其 `perms_api.go`/`hostcaps.go` 与本任务 `roles.go`/`role_policy.go` 不同区段,组合冲突由 L1 集成时解决;本任务不重写 L1 已实现的联动规则,只消费。
|
||||
- 交付模式:goal-first(目标、范围和交付终点一次确认;范围内连续推进)
|
||||
- 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md)
|
||||
- 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入)
|
||||
@@ -15,7 +17,35 @@
|
||||
|
||||
## 目标与非目标
|
||||
|
||||
<预期结果、受影响入口/模块/契约;明确不做什么。>
|
||||
**目标**(方案 R1–R17,用户验收 C01–C16):管理员无需理解技术权限字段即可看懂角色能做什么;默认业务分类矩阵可同时比较并编辑多个角色(三态控件:不允许/按项目授权/默认允许;系统动作仅允许/不允许);单角色聚焦复用同一草稿;统一预览与原子保存;用户列表显示当前角色并支持单人/多人批量角色分配(服务端目录选择器,不手输账号);复制角色并分配;系统自动处理创建项目联动并解释生效范围;项目有效权限说明。
|
||||
|
||||
**非目标**:多职位叠加、个人普通权限覆盖、通用权限引擎、审批系统、Excel 导入导出、批量系统管理授权、全库动态匹配选择;账号恢复/凭据管理(原入口);超级管理员保护(#627);成员共享读取语义(L1 U7);生产部署与日常实例采用。
|
||||
|
||||
## 实施单元(本任务)
|
||||
|
||||
| 单元 | 范围 | 依赖 |
|
||||
|---|---|---|
|
||||
| permux-U1 权限展示与关联预览 | Backend `internal/authz/catalog/`、`internal/server/roles.go`、`internal/store/role_policy.go`、`pkg/extension/role_policy.go`:中文分类目录元数据、三态归一化、变更预览(含 #628 关联差异)、缺失/显式拒绝可区分 | L1 U1 合同(已冻结并实现 @ afb65c5) |
|
||||
| permux-U2 原子批量写入与读投影 | Backend 同上 + `internal/server/account_search.go`:多角色 patch 事务、多用户角色分配事务、复制角色并分配事务;用户目录当前角色投影、角色成员目录 | permux-U1 |
|
||||
| permux-U3 分类矩阵与单角色聚焦 | Frontend `RolePermissionsPanel.tsx`、`rolePermissions.ts`、`api.ts`、样式与测试 | permux-U1/U2 |
|
||||
| permux-U4 用户与角色人员配置 | Frontend `AccountUsersPanel.tsx`、`AdminZone.tsx`、`api.ts`、人员选择器与测试 | permux-U2;与 #627 AccountUsersPanel 修改按顺序合并(#627 未动本分支时直接实施) |
|
||||
| permux-U5 项目有效权限说明 | Frontend `adminRdmSections.tsx` 权限解释区;消费 L1 合同,L1 U3/U7 未组合前显式「联动服务未就绪」,不 mock | permux-U3/U4 + L1 真实规则 |
|
||||
| permux-U6 真实浏览器验收与交付 | `e2e/iam-role-authority.playwright.ts` 扩充、组合 gitlink、Review/CI/合入(host 主导) | 全部 |
|
||||
|
||||
## 需求分析
|
||||
|
||||
| ID | 描述 | 验收 | 结论 |
|
||||
|---|---|---|---|
|
||||
| R1–R7 | 角色配置:分类矩阵、三态控件、联动预览、中文文案(方案 Requirements — Role Configuration) | C01–C06, C11, C14 | 纳入 permux-U1/U3 |
|
||||
| R8–R12 | 人员配置:目录检索、多选批量、复制分配、稳定 userId(方案 Requirements — User Configuration) | C07–C10, C14 | 纳入 permux-U2/U4 |
|
||||
| R13–R17 | 可靠性与验收:原子事务、幂等、固定选择集、可访问性、真实验收(方案 Reliability and Acceptance) | C09, C12, C14, C15 | 纳入 permux-U2/U6 |
|
||||
| C16 | 日常实例采用 | 运行版本核对 | NOT_RUN(未授权部署),单列记录 |
|
||||
|
||||
## 风险与决策记录
|
||||
|
||||
- L1 U2(单一角色权威)与本任务均在途:本任务 Backend 基于联动分支 afb65c5,L1 后续单元合入时由 L1 集成解决;两单元文件区段不重叠(其 perms_api/hostcaps,本任务 roles/role_policy/account_search)。
|
||||
- 「创建项目→自动关联」运行时联动已在 L1 U1 实现(afb65c5);本任务 U1 的预览/展示直接消费 `catalog.ProjectCreateLinkedActions()` 与 `LinkedCapabilities`,不另建第二套关联规则。
|
||||
- L1 U7(成员共享读取)未实现:permux-U5 相关展示显式标注联动服务未就绪,不伪造;验收 C13 由 L1 U7 交付时闭环。
|
||||
|
||||
## Agent 实施收据
|
||||
|
||||
|
||||
Reference in New Issue
Block a user