4.6 KiB
4.6 KiB
| 1 | ID | Title | Description | Acceptance | Test_Method | Tools | Dev_Status | Review1_Status | Regression_Status | Files | Dependencies | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | WZ6-1 | 建档并确认账号缺口 | 为 R6 真实财务候选账号 wangzhiling 创建受控数据变更合同,复核当前公网未命中该员工账号。 | 1) 本 CSV 存在且校验通过;2) 只读确认远端 employees 未命中 wangzhiling/zhiling;3) 本轮不改业务代码、不改远端 .env、不改审批链。 | 流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-12_00-28-43-r6-create-wangzhiling-finance-user.csv;ssh 只读查询 employees where employee_no/email/name like wangzhiling/zhiling;git status --short。 | python3|ssh|manual | DONE | DONE | DONE | issues/2026-05-12_00-28-43-r6-create-wangzhiling-finance-user.csv | [] | 2026-05-12 R6-3 已记录只读未命中;本项只补执行合同。 |
| 3 | WZ6-2 | 确定创建字段与安全交付口径 | 固定 wangzhiling 账号的最小字段、角色和一次性密码交付方式;未提供真实手机号时使用试运行占位号码,后续由管理员更新。 | 1) employeeNo=wangzhiling;2) name=wangzhiling;3) [email protected];4) roles 包含 employee 和 finance;5) 一次性密码不打印、不提交,只写入仓库外 600 权限文件;6) 若唯一约束冲突则停止并记录。 | 流程级验证:人工核对本行 Notes;创建前查询 email/phone/employee_no 唯一性;检查仓库外凭据文件权限为 600 且不在 git status 中。 | ssh|manual | DONE | DONE | DONE | external | ["WZ6-1"] | 默认 phone=19900000012、title=财务;display name 暂用 wangzhiling,避免猜测中文姓名;后续可在系统用户管理里更新真实手机号和姓名。 |
| 4 | WZ6-3 | 通过受控管理员接口创建 OA 用户 | 使用现有 /api/auth/login 和 /api/users 管理接口创建 wangzhiling,不直接手工插库;创建动作写系统审计。 | 1) 管理员登录成功但不打印凭据;2) POST /api/users 返回新员工 id、employeeNo 和 oneTimePassword;3) oneTimePassword 仅写入 ~/.hyb-oa/wangzhiling-onetime.env;4) API 失败时停止,不改用未审计 SQL 插入。 | 流程级验证:source ~/.hyb-oa/live-smoke.env 后调用公网 API;请求体不含 secret;创建响应中密码重定向写入仓库外文件;确认文件 chmod 600;不在终端或文档输出密码值。 | curl|node|manual | DONE | DONE | DONE | external | ["WZ6-2"] | 已通过公网 /api/auth/login + /api/users 创建;employeeId=0127a9e4-85b6-4268-ad45-c07dcefec850;一次性密码仅写入 ~/.hyb-oa/wangzhiling-onetime.env,权限 600;不修改远端 .env、组织规则或历史数据。 |
| 5 | WZ6-4 | 只读核验账号角色和财务权限 | 创建后只读确认 wangzhiling active、角色为 employee+finance,并具备财务付款/导出相关权限来源。 | 1) employees 命中 wangzhiling 且 status=active;2) employee_roles 包含 employee 和 finance;3) finance 角色包含 expense.finance.pay、payment.batch.manage、expense.view_all、invoice.manage;4) 不自动绑定企业微信,不猜真实密码。 | 流程级验证:远端 psql 只读查询 employees/employee_roles;本地核对 server/src/constants/permissions.js finance 权限;不打印敏感字段。 | ssh|rg|manual | DONE | DONE | DONE | external | ["WZ6-3"] | 只读核验:wangzhiling|[email protected]|19900000012|财务|active|employee,finance;审计存在 SYSTEM_USER_CREATED;finance 权限来源包含 invoice.manage、expense.finance.pay、payment.batch.manage、expense.view_all、travel.payment.manage。 |
| 6 | WZ6-5 | 回填 R6 准备状态并提交 | 把 wangzhiling 创建和核验结果回填到 R6 准备合同与试运行报告,解除 R6-3 的财务账号缺口。 | 1) issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv 的 R6-3 Regression_Status 可在核验通过后置 DONE;2) docs/trialrun/manual-trialrun-report.md 的 wangzhiling 备注从待补账号改为已创建待本人登录;3) release-readiness R6 Notes 去掉真实财务账号未补齐阻断;4) git diff --check 通过;5) 提交中文 commit。 | 流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv issues/2026-05-12_00-28-43-r6-create-wangzhiling-finance-user.csv;git diff --check;git status --short;人工核对不包含密码、secret 或隐私截图。 | python3|git|manual | DONE | DONE | DONE | issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv|docs/trialrun/manual-trialrun-report.md|docs/trialrun/release-readiness-checklist.md | ["WZ6-4"] | 已回填 R6-3、试运行报告和 release readiness;提交信息:WZ6 创建 R6 财务试运行账号。 |