a3bb78e06b
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 16m35s
2.4 KiB
2.4 KiB
V2 审批待办与角色边界闭环记录
日期:2026-06-24
本轮目标
完成 T3:审批待办与角色边界。保持“待我审批 / 我的草稿 / 履约提醒”简单分组,并让不同角色只看到自己能处理的按钮。
角色
admin:管理员,能看到管理区、审计、审批、编辑等完整能力。legal:法务,能审查合同、查看审计、编辑和提交审批。business:业务提交人,能起草、编辑、上传文件、发起审查、提交/重提审批。approver:审批人,只聚焦待审批合同,能通过或退回。observer:只读观察者,只看只读详情和履约提醒,不显示复杂操作。
已完成
-
Contract API 增加最小角色模型和权限结果:
ContractPermissionsWorkspaceTask.bucket/api/v1/workspace?role=.../api/v1/contracts/{id}?role=...
-
后端按角色过滤工作台任务:
- 审批人:看到待我审批。
- 业务提交人:看到我的草稿、退回、审查中合同。
- 法务/管理员:看到审查和审批相关合同。
- 只读观察者:不看审批/草稿任务,只保留履约提醒。
-
合同详情按钮按权限显示:
- 编辑
- 下载
- 提交审批 / 退回后重提
- 审批通过 / 退回修改
- 发起审查
- 上传文件
- 查看审计
-
前端继续复用
access-control.ts:- 角色来源保持
NEXT_PUBLIC_DEMO_ROLE。 - 管理区访问规则继续集中在前端 access-control。
- 工作台和合同详情使用后端返回的业务权限。
- 角色来源保持
简化原则
普通业务用户只看到:
待我处理 -> 快速发起 -> 合同详情下一步操作
审批人只看到审批动作,不被起草、配置、审计信息干扰。
管理员/法务才看到审计和管理能力。
验证
- 后端测试:
python -m pytest yuqei-contract-platform\services\contract-api\tests -q - 后端编译:
python -m compileall yuqei-contract-platform\services\contract-api\src - OpenAPI 解析:通过
- 前端构建:
npm --prefix yuqei-contract-platform\apps\contract-web run build - 前端类型检查:
npm --prefix yuqei-contract-platform\apps\contract-web run typecheck
后续建议
下一轮进入 T4:合同仓库 MVP。优先做合同附件列表、文件预览、下载、关联合同入口,继续服务合同主流程,不扩成复杂网盘。