文件
hyb-oa/issues/2026-05-13_18-23-51-org8-master-data-permission.csv

20 行
13 KiB
CSV

ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
ORG8-0,ORG8 连续合同建档,"建立组织账号与权限主数据连续型合同,把组织、账号、主管、停用、角色、企业微信绑定和权限边界集中到同一 CSV。","1) 本 CSV 校验通过;2) 文档索引和状态矩阵指向本合同;3) 不改业务代码;4) 不绕过 R7E 人工确认;5) 后续组织权限问题优先进入本合同。","流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-13_18-23-51-org8-master-data-permission.csv;rg -n 'ORG8|组织账号|权限主数据' docs/文档索引.md docs/文档事实源状态矩阵.md issues/README.md。",python3|rg|manual,DONE,DONE,DONE,issues/2026-05-13_18-23-51-org8-master-data-permission.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md|issues/README.md,[],CSV validator 和索引 rg 均通过;本次仅合同建档和入口登记,未改业务代码,后续实现行仍需方案批准。
ORG8-1,组织账号需求规约更新,"把员工、主管、财务、管理员、停用和企业微信绑定的当前口径补入现有事实源或确认现有事实源已覆盖。","1) 组织账号主数据口径清楚;2) 不把管理员角色当作业务审批人;3) 企业微信只做身份和入口绑定;4) 冻结项不进入。","流程级验证:rg -n '组织|账号|直属主管|停用|角色|企业微信绑定|管理员' docs/管理员手册.md docs/需求-企业微信基础设施规约.md docs/海音达OA-MVP需求规格说明书.md。",rg|manual,DONE,DONE,DONE,docs/管理员手册.md|docs/需求-企业微信基础设施规约.md|docs/海音达OA-MVP需求规格说明书.md,"[""ORG8-0""]",已在管理员手册补 ORG8 组织账号主数据口径;rg 复核管理员手册、企业微信规约和 PRD 通过;未执行账号数据变更。
ORG8-2,角色边界设计,"设计员工、直属主管、审批人、财务和管理员的边界,明确最小权限和不兼容角色组合。","1) 角色能力矩阵清楚;2) 财务与系统管理混授风险可识别;3) admin-only 不进入业务审批;4) 有回滚和审计口径。","流程级验证:人工审查角色矩阵;rg -n '员工|主管|审批人|财务|管理员|角色边界|最小权限' docs/管理员手册.md docs/开发交付与变更管理规约.md。",rg|manual,DONE,DONE,DONE,docs/管理员手册.md|docs/开发交付与变更管理规约.md,"[""ORG8-1""]",管理员手册已补角色能力矩阵和不兼容组合;admin-only 不作为业务审批人,财务和系统管理员混授需人工确认;后续权限实现仍需方案批准。
ORG8-3,直属主管缺失审计,"建立直属主管缺失的只读审计口径,识别会影响审批链的员工账号。","1) 缺直属主管的员工可列出摘要;2) 不打印隐私和密码;3) 不直接写生产数据;4) 缺口进入修复分流。","流程级验证:在只读环境执行员工和主管关系核验;无环境时记录可复现 SQL 或脚本步骤。",manual|rg,DONE,DONE,DONE,docs/管理员手册.md|server/prisma/schema.prisma,"[""ORG8-2""]",已根据 Prisma schema 在管理员手册补直属主管缺失只读 SQL;未执行生产查询或数据修复;后续有只读环境时输出摘要再分流。
ORG8-4,主管停用影响审计,"识别直属主管被停用后对请假、报销、采购审批链的影响。","1) 停用主管关联员工可追溯;2) 受影响流程明确;3) 不自动改审批链;4) 有人工处理建议。","流程级验证:只读核验停用主管和下属关系;流程核对员工提交请假或报销时审批链是否可解释。",manual|node,DONE,DONE,DONE,scripts/qa|server/src,"[""ORG8-3""]",本地只读 node 审计通过:disabled_manager_chain=0;未发现启用员工挂到停用或缺失主管;未改数据。
ORG8-5,审批人停用影响审计,"识别审批人停用后待办、历史记录和新流程分派的影响。","1) 待办不分配给停用审批人;2) 历史审批记录不丢失;3) 新流程有替代规则;4) 异常可追溯。","流程级验证:提交或模拟审批流 -> 停用审批人场景 -> 检查待办归属和历史记录。",manual|node,DONE,DONE,DONE,server/src|scripts/qa,"[""ORG8-4""]",本地只读 node 审计通过:inactive_pending_assignees=0;roles_without_active_holder=0;未发现停用审批人待办或无有效角色持有人待办;未改数据。
ORG8-6,admin-only 误用为审批人审计,"审计 admin-only 账号是否被配置为业务审批人或财务处理人。","1) admin-only 不承担业务审批;2) 误配能被发现;3) 不影响管理员系统管理入口;4) 修复路径明确。","流程级验证:只读查询角色和审批链配置;流程核对报销或请假审批人不是 admin-only。",manual|node,DONE,DONE,DONE,scripts/qa|server/src,"[""ORG8-2""]",本地只读 node 审计通过:admin_only_pending=0;approval_rules_use_admin=0;未发现 admin-only 承担业务审批或审批规则使用 admin;未改数据。
ORG8-7,财务和管理员混授审计,"审计财务和系统管理员角色混授风险,明确是否允许同人双角色及审计要求。","1) 混授账号可列摘要;2) 财务付款和系统管理权限边界清楚;3) 高风险组合进入人工确认;4) 不泄露敏感字段。","流程级验证:只读核验用户角色集合;流程核对财务台账和系统管理入口权限。",manual|node,DONE,DONE,DONE,scripts/qa|server/src|client/src,"[""ORG8-2""]",本地只读 node 审计通过:finance_admin_mixed_roles=0;未发现启用账号同时持有 admin 与 finance 或 finance_mgr;未改数据。
ORG8-8,新员工账号流程,"定义新员工账号创建、角色分配、直属主管配置和企业微信绑定的操作流程。","1) 新员工从创建到可用路径清楚;2) 必填主数据明确;3) 缺主管或缺绑定有提示;4) 不记录密码明文。","流程级验证:管理员创建员工 -> 分配角色和主管 -> 员工登录或进入企业微信入口 -> 权限正确。",manual|playwright,DONE,DONE,DONE,docs/管理员手册.md|server/src|client/src,"[""ORG8-3"",""ORG8-7""]",管理员手册已固化入职和最小主数据;server 单测 users.write/import/list/patch/auth.login/workflow.permissions 通过 33 tests;覆盖创建账号、角色、主管引用、登录绑定和权限边界;未改业务代码。
ORG8-9,企业微信绑定流程,"收敛企业微信用户标识、OA 账号和绑定状态的流程和异常处理。","1) 绑定状态可解释;2) 未绑定提示清楚;3) 解绑或变更有审计;4) 企业微信只做入口和身份基础设施。","流程级验证:企业微信入口 -> 身份绑定检查 -> OA 角色入口 -> deeplink 返回目标页面。",manual|playwright,DONE,DONE,DONE,docs/需求-企业微信基础设施规约.md|server/src|client/src,"[""ORG8-8""]",企业微信规约已固化绑定和异常口径;server 单测 wecomAuth 11 tests 与 auth.login 1 test 通过;覆盖入口配置、未绑定回退、绑定审计、解绑审计和密码登录后自动绑定;不做企业微信原生审批。
ORG8-10,账号禁用和离职流程,"定义账号禁用、离职和权限回收流程,保护历史单据和审批记录。","1) 禁用账号不能新登录或处理新任务;2) 历史记录保留;3) 待办有转交或暂停策略;4) 回滚路径清楚。","流程级验证:禁用账号 -> 尝试登录和处理审批 -> 检查历史单据可读但不可越权操作。",manual|node|playwright,DONE,DONE,DONE,server/src|client/src|docs/管理员手册.md,"[""ORG8-5""]",本地 route 注入验证通过:disable 写 archived 并撤销 session 和 SYSTEM_USER_DISABLED 审计;enable 作为回滚路径写 active 和 SYSTEM_USER_ENABLED;inactive login 返回 AUTH_003;未连接真实数据库。
ORG8-11,角色变更审计日志,"定义角色新增、移除和关键权限变化的审计日志口径。","1) 谁在何时变更了何种角色可追溯;2) 不记录密码或 token;3) 关键变更可用于排障;4) 不影响业务性能。","流程级验证:管理员变更角色 -> 查看审计摘要或日志路径 -> 验证敏感字段未入库或未打印。",manual|node,DONE,DONE,DONE,server/src|docs/开发交付与变更管理规约.md,"[""ORG8-10""]",本地 route 注入验证通过:POST /users/:id/roles 删除旧角色后写入 employee 和 finance;撤销 session;写 SYSTEM_USER_ROLES_SET 审计且 extra 仅含 roles;未连接真实数据库。
ORG8-12,后端权限护栏,"补强组织账号相关 API 的服务端授权,避免仅靠前端隐藏入口。","1) 普通员工不能访问管理员能力;2) 财务权限和管理员权限分离;3) 直属主管相关 API 校验服务端生效;4) 权限失败可追溯。","流程级验证:使用不同角色请求组织账号和财务相关 API -> 检查 403 或允许范围 -> 复跑权限回归。",node|bash|manual,DONE,DONE,DONE,server/src|server/scripts,"[""ORG8-2"",""ORG8-11""]",Playwright 权限直连后端接口用例通过;请假采购自审和 admin-only 审批拒绝用例通过;portal 角色能力字段在 PORTAL_HOME_ENABLED=true 下通过;依赖 ORG8-10/11 已关闭。
ORG8-13,前端角色入口调整,"按角色边界调整 PC、移动和企业微信入口,避免显示不可用或越权入口。","1) 员工、审批人、财务、管理员入口符合角色;2) 前端不替代服务端授权;3) 移动视口不重叠;4) 文案不承诺冻结能力。","流程级验证:不同角色登录 PC 和移动入口 -> 检查导航和关键操作 -> 运行 typecheck/build 和必要 Playwright。",playwright|npm|manual,DONE,DONE,DONE,client/src|docs/产品设计规则.md,"[""ORG8-12""]",SERVE_CLIENT_DIST=true 本地 server 下 Playwright PA6 角色入口矩阵通过;员工 主管 财务 管理员 PC 和移动入口按正式业务角色裁剪;未改前端代码。
ORG8-14,权限直连回归,"对组织账号、角色、财务、审批和企业微信入口做直连权限回归。","1) URL 直连不能越权;2) API 直连不能越权;3) 前端入口和服务端结果一致;4) 证据路径可追溯。","流程级验证:按权限直连审计记录复跑不同角色直连 URL/API -> 检查允许和拒绝结果。",bash|node|manual,DONE,DONE,DONE,scripts/qa|docs/trialrun/权限直连审计记录.md,"[""ORG8-12"",""ORG8-13""]",SERVE_CLIENT_DIST=true 且 PORTAL_HOME_ENABLED=true 本地 server 下权限直连补跑通过:前端直连备用路径和员工自助直连 2 tests passed;此前入口矩阵 API直连 admin-only拒绝 portal能力字段均通过。
ORG8-15,组织账号试运行验收,"用代表性角色完成组织账号和权限主数据试运行验收。","1) 至少覆盖员工、审批人、财务、管理员;2) 账号启用、禁用、角色变更和绑定流程有结论;3) 阻断问题归属清楚;4) 不泄露隐私。","流程级验证:管理员配置账号 -> 员工提交业务 -> 审批人处理 -> 财务查看 -> 禁用或角色变更后复核权限。",manual|playwright,DONE,DONE,DONE,docs/trialrun/人工试运行报告.md|issues/2026-05-13_18-23-51-org8-master-data-permission.csv,"[""ORG8-14""]",本地代表性角色验收完成但不等同 R7E 真实试运行:server 单测 33 tests 覆盖账号创建/角色/主管/绑定;route 注入覆盖禁用/启用/角色审计;Playwright 权限直连 2+3 tests passed 覆盖员工、审批人、财务、管理员入口/API/admin-only 拒绝;真实人工名单和窗口仍归 R7E-1..7。
ORG8-16,ORG8 收口准备,"整理 ORG8 变更摘要、验证证据、未完成项和后续 WF8/BIZ8 影响。","1) DONE 行均有证据;2) 未完成项不伪装完成;3) 影响 WF8 的角色边界清楚;4) 文档入口同步。","流程级验证:人工核对 ORG8 CSV 状态、验证摘要、文档索引和 git diff。",manual|git,DONE,DONE,DONE,issues/2026-05-13_18-23-51-org8-master-data-permission.csv|docs/文档索引.md,"[""ORG8-15""]",已整理 ORG8 证据并同步文档索引、状态矩阵和人工试运行报告;WF8 仍卡在移动审批历史展示方案批准;BIZ8 财务/项目增强需另批代码方案;R7E/QAOPS8 人工确认项未关闭。
ORG8-CLOSE,ORG8 阶段 CLOSE,"阶段性关闭 ORG8,完成状态回填、验证摘要和中文提交。","1) CSV 校验通过;2) git diff --check 通过;3) 所有 DONE 有命令或人工证据;4) 中文提交引用 ORG8;5) 后续风险有归属。","流程级验证:validate_issues_csv.py 本 CSV;git diff --check;人工核对最终摘要。",python3|git|manual,DONE,DONE,DONE,issues/2026-05-13_18-23-51-org8-master-data-permission.csv,"[""ORG8-16""]",ORG8 阶段关闭:CSV validator 通过;audit-docs errors=0 warnings=1 且 unregistered docs files 为已知非阻断项;git diff --check 通过;本阶段未部署也未执行真实 R7E。