| content |
{"Commits":[{"Sha1":"68a0d5d09 {"Commits":[{"Sha1":"68a0d5d096ae12cb8cb23b6684467b0276dede4a","Message":"feat: 合并角色分配与用户组成员姓名显示的前端接入\n\n后端 b6c5512 已为业务角色分配、成员候选和用户组详情补齐姓名。合并 feat/console-layout 上对应的前端接入,让应用「角色分配」和用户组成员不再只显示成员代码。\n\n实现内容:\n- 合入 6f2d8cf:角色分配列表、分配候选、用户组成员清单与勾选器显示「姓名 + 成员代码」,姓名未确认时提示,搜索框改为可按姓名或成员代码搜索;用户组详情改用只读 members 数组,删除前 100 个候选反查\n- 合入 354be5b:用户组改名 403/404 测试改为等待错误块聚焦后再断言\n- 只修改 iam-admin-web;写入接口、UUID、版本与 CSRF 处理不变\n\n验证:\n- 合并前在 feat/console-layout 上运行 npm run check:38 个测试文件 339 项测试及格式、lint、类型检查、构建全部通过\n- 合并前核对 main 上 b6c5512 的交接文档与查询字段(subject_name、subject_name_set、display_name_set、members)与前端读取一致;b6c5512 未修改 iam-admin-web\n- 未与真实后端联调,相关验收脚本未运行\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-10-19T01:03:02-07:00"},{"Sha1":"b6c5512d570e29949a14257b436fc1de35d8e73b","Message":"fix(auth): 补齐委派授权与用户组成员姓名\n\n授权管理员需要通过姓名辨认分配对象,组详情也不能依赖前一页候选反查成员。\n\n实现内容:\n- 业务角色绑定及成员候选返回姓名和确认标记,支持姓名与成员代码搜索\n- 用户组详情增加完整只读 members 数组,与 memberships 共用查询结果\n- 保留原企业和应用权限、隐私边界及停用撤权规则\n- 补充权限、搜索、历史状态和完整成员回归测试,同步接口合同与前端交接文档\n\n验证:\n- Maven verify:319 项单元测试、51 项指定集成测试通过,失败、错误和跳过均为 0\n- verify 包含 Spotless 格式检查、编译、架构检查及后端打包;git diff --check 通过\n- 未执行全量集成测试、前端构建及浏览器验收\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-10-19T00:51:53-07:00"},{"Sha1":"6f2d8cf8392a3c27d5e1806729e2342ef040a621","Message":"feat(console): 角色分配与用户组成员显示姓名\n\n应用「角色分配」和用户组成员原先只能显示成员代码,管理员认不出分配对象。后端已按 docs/console/delegated-member-names-handoff.md 为业务角色分配、成员候选和用户组详情补齐姓名,前端随之接入。\n\n实现内容:\n- 角色分配列表与详情的成员显示姓名,副信息「成员 · 成员代码」,subject_name_set=false 时提示「姓名未确认」;用户组分配 subject_name 为 null,继续显示组名称\n- 分配角色的成员候选显示姓名与成员代码,搜索框改为「搜索姓名或成员代码」,用户组候选为「搜索用户组名称或代码」;CandidatePicker 新增 searchLabel,企业管理员候选同样使用成员文案;分配记录搜索框改为「搜索姓名、成员代码、用户组或角色」\n- 用户组详情直接使用只读 members 数组显示全部成员(含本人、第 101 人以后),删除先读前 100 个候选反查代码的逻辑;新加入的人用勾选器看到的候选信息显示;停用成员注明「成员已停用」\n- 用户组清单与勾选器显示「姓名 + 成员代码」,按钮无障碍名称为「移除成员 姓名(代码)」以区分同名成员;搜索框改为「搜索姓名或成员代码」\n- 写入保持不变:组成员全量替换仍只提交 {version,memberships},不发送 members,姓名不作为标识或写入值;后端不返回 members 或姓名时回退显示代码或标识缩写\n- 同步类型注释、单元测试,以及 acceptance-t02、acceptance-t04、acceptance-group-lifecycle 的搜索框名称与候选定位(改为按行内成员代码定位)\n\n验证:\n- npm run check:格式、lint、类型检查、38 个测试文件 339 项测试与构建全部通过\n- 新增或改写测试覆盖:业务分配姓名、组绑定名称、姓名未确认、两类候选搜索框;组详情 25 人全部显示姓名与代码、停用成员、打开勾选器前不请求候选;勾选器姓名显示及新加入成员的显示\n- 浏览器经本地模拟接口验证:角色分配列表与候选显示姓名、按姓名搜索出两名同名成员并以代码区分;用户组清单与勾选器显示姓名,勾选前后被点行位置与高度不变\n- 后端改动目前仍是主目录未提交改动,未与真实后端联调;三个验收脚本未运行\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-10-19T00:49:30-07:00"},{"Sha1":"354be5b9c9f80a7bb5d750274e0aaaa736016416","Message":"test(console): 等待用户组改名错误块聚焦后再断言\n\n用户组改名返回 403/404 的用例在错误文案出现后立即断言焦点,而错误块是在提交后的 effect 里才聚焦,多文件并行运行时偶发先断言、后聚焦而失败。\n\n实现内容:\n- group-lifecycle 的 403/404 用例改为 waitFor 等待焦点落到 .write-error 后再断言,界面行为不变\n\n验证:\n- 此前该用例在多文件并行运行中出现过 2 次失败;在修改前的 6bd108d 与当前代码上分别用同一组 5 个测试文件连续运行 8 轮,均未复现\n- 修改后 group-lifecycle、group-editor、display-name-reads、authorization-management 共 40 项测试通过\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-10-19T00:49:14-07:00"},{"Sha1":"130a9ed5ceca7be71baed1ddecd2c4b085bd7ea6","Message":"fix: 合并用户组成员布局改造\n\n用户组详情勾选候选成员时,上方「已选成员」列表随勾选变高,页面看起来一直在自己滚动。合并 feat/console-layout 上的前端修复,把成员清单与「添加成员」勾选器分开显示。\n\n实现内容:\n- 合入 9ca3197:成员清单与勾选器二选一显示,勾选时上方内容高度不变;待加入、待移除在清单原位标注并可撤销,新增「还原」\n- 只修改 iam-admin-web 下的页面、样式、单元测试与 acceptance-t02 选择器,不涉及后端与接口合同\n\n验证:\n- 合并前在 feat/console-layout 上运行 npm run check:38 个测试文件 337 项测试及格式、lint、类型检查、构建全部通过\n- 合并结果与 9ca3197 的文件树一致(合并前 main 即为该提交的父提交)\n- acceptance-t02 未运行;未与真实后端联调\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-10-19T00:39:13-07:00"}],"HeadCommit":{"Sha1":"68a0d5d096ae12cb8cb23b6684467b0276dede4a","Message":"feat: 合并角色分配与用户组成员姓名显示的前端接入\n\n后端 b6c5512 已为业务角色分配、成员候选和用户组详情补齐姓名。合并 feat/console-layout 上对应的前端接入,让应用「角色分配」和用户组成员不再只显示成员代码。\n\n实现内容:\n- 合入 6f2d8cf:角色分配列表、分配候选、用户组成员清单与勾选器显示「姓名 + 成员代码」,姓名未确认时提示,搜索框改为可按姓名或成员代码搜索;用户组详情改用只读 members 数组,删除前 100 个候选反查\n- 合入 354be5b:用户组改名 403/404 测试改为等待错误块聚焦后再断言\n- 只修改 iam-admin-web;写入接口、UUID、版本与 CSRF 处理不变\n\n验证:\n- 合并前在 feat/console-layout 上运行 npm run check:38 个测试文件 339 项测试及格式、lint、类型检查、构建全部通过\n- 合并前核对 main 上 b6c5512 的交接文档与查询字段(subject_name、subject_name_set、display_name_set、members)与前端读取一致;b6c5512 未修改 iam-admin-web\n- 未与真实后端联调,相关验收脚本未运行\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-10-19T01:03:02-07:00"},"CompareURL":"pengzhiyu/IAM/compare/6bd108ddfd20351569b88f276ed8cfa90e7f6f3b...68a0d5d096ae12cb8cb23b6684467b0276dede4a","Len":6}... |