2.2 KiB
2.2 KiB
| 1 | ID | Title | Description | Acceptance | Test_Method | Tools | Dev_Status | Review1_Status | Regression_Status | Files | Dependencies | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | P15A-0 | P15A执行合同建档 | 创建并校验P15A(权限全域解耦)执行合同CSV | CSV通过校验且字段完整 | python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-06_14-30-00-p15a-l5-permission-decouple.csv | manual | DONE | DONE | DONE | issues/2026-03-06_14-30-00-p15a-l5-permission-decouple.csv | [] | 需在P14彻底结束后建档 |
| 3 | P15A-1 | 常量字典与角色补齐 | 重构 permissions.js 新增 LEAVE 域权限集并应用给相应角色 | 字典分离成功并且在测试或路由里可以解析出权限 | manual | manual | TODO | TODO | TODO | server/src/constants/permissions.js | server/src/scripts/seed-dev.js | ["P15A-0"] | 应用角色权限 |
| 4 | P15A-2 | 工作流动态鉴权剥离 | 将硬编码的 expense.approve 替换为 resolveEntityPermission 以根据 entityType 支持多态鉴权 | 提交和审批节点鉴权可自动识别 leave 和 expense 的不同所需 Token | cd server && npm run test | manual | TODO | TODO | TODO | server/src/constants/permissions.js | server/src/plugins/auth.js | server/src/routes/workflow.js | ["P15A-1"] | 核心路由侧改动;不新增中间映射文件 |
| 5 | P15A-3 | 前端路由与菜单显隐域解耦 | 调整现有待办与审批入口的 anyOf 守卫以支持 leave.approve 避免菜单与路由继续借用 expense 域 | 具备 leave.approve 的审批人可见现有审批入口且不新增独立请假配置菜单 | manual | manual | TODO | TODO | TODO | client/src/components/navigation/NavLinks.tsx | client/src/router/index.tsx | ["P15A-1"] | 仅调整现有入口守卫,不扩独立请假菜单 |
| 6 | P15A-4 | OpenAPI Tag分离 | 更新 leave 相关的 OpenAPI schema 注释将其脱离 Finance 组并收归 HR 分区 | 导出或查阅 json 中正确呈现独立 tag | curl /api/docs/json | manual | TODO | TODO | TODO | server/src/routes/leave.js | ["P15A-2"] | 不涉及业务逻辑 |
| 7 | P15A-5 | P15A全量回归测试 | 运行回归脚本确保由 P15A 引发的基座层鉴权改动并未破坏原有的报销流转 (Expense) | 全量基线回归绿柱通过 | cd server && ./scripts/regression-all.sh | manual | TODO | TODO | TODO | none | ["P15A-3","P15A-4"] | 严查expense业务回归 |