Files
ai-contract-platform/project-docs/V2-approval-todo-role-boundary-2026-06-24.md
T
yuqei a3bb78e06b
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 16m35s
release: freeze V2 release candidate
2026-07-12 15:32:24 +08:00

66 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# V2 审批待办与角色边界闭环记录
日期:2026-06-24
## 本轮目标
完成 T3:审批待办与角色边界。保持“待我审批 / 我的草稿 / 履约提醒”简单分组,并让不同角色只看到自己能处理的按钮。
## 角色
- `admin`:管理员,能看到管理区、审计、审批、编辑等完整能力。
- `legal`:法务,能审查合同、查看审计、编辑和提交审批。
- `business`:业务提交人,能起草、编辑、上传文件、发起审查、提交/重提审批。
- `approver`:审批人,只聚焦待审批合同,能通过或退回。
- `observer`:只读观察者,只看只读详情和履约提醒,不显示复杂操作。
## 已完成
1. Contract API 增加最小角色模型和权限结果:
- `ContractPermissions`
- `WorkspaceTask.bucket`
- `/api/v1/workspace?role=...`
- `/api/v1/contracts/{id}?role=...`
2. 后端按角色过滤工作台任务:
- 审批人:看到待我审批。
- 业务提交人:看到我的草稿、退回、审查中合同。
- 法务/管理员:看到审查和审批相关合同。
- 只读观察者:不看审批/草稿任务,只保留履约提醒。
3. 合同详情按钮按权限显示:
- 编辑
- 下载
- 提交审批 / 退回后重提
- 审批通过 / 退回修改
- 发起审查
- 上传文件
- 查看审计
4. 前端继续复用 `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。优先做合同附件列表、文件预览、下载、关联合同入口,继续服务合同主流程,不扩成复杂网盘。