a3bb78e06b
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 16m35s
3.0 KiB
3.0 KiB
AI 合同平台 V2 - 权限矩阵功能闭环记录
日期:2026-06-26
背景
对照《AI 合同平台 V2 重构版开发方案》Phase 7 安全、性能与上线准备,本轮实现权限矩阵功能。
已完成内容
权限枚举定义
新增权限类型(Permission):
view_contract: 查看合同create_contract: 创建合同edit_contract: 编辑合同delete_contract: 删除合同approve_contract: 审批合同export_contract: 导出合同view_file: 查看文件upload_file: 上传文件delete_file: 删除文件view_audit: 查看审计manage_backup: 管理备份view_metrics: 查看指标manage_approval_rule: 管理审批规则
角色权限映射
| 角色 | 权限数 | 核心权限 |
|---|---|---|
| admin | 13 | 全部权限 |
| legal | 9 | 审批、导出、审计、规则管理 |
| business | 5 | 创建、编辑、上传 |
| approver | 4 | 审批、查看 |
| observer | 3 | 仅查看 |
权限检查函数
新增函数:
has_permission(role, permission): 检查角色是否有权限get_permissions(role): 获取角色所有权限get_user_role_permissions(): 获取所有角色权限映射require_permission(permission): 权限检查装饰器
数据模型
新增模型:
PermissionInfo: 角色权限信息PermissionCheckRequest: 权限检查请求PermissionCheckResponse: 权限检查响应RolePermissionsPage: 角色权限列表
API 接口
新增接口:
GET /api/v1/permissions/roles: 获取所有角色权限POST /api/v1/permissions/check: 检查权限
Repository 方法
新增方法:
get_role_permissions(): 获取角色权限check_permission(role, permission): 检查权限
测试
test_permissions.py:
test_admin_has_all_permissions: 管理员权限测试test_observer_has_limited_permissions: 观察者权限测试test_approver_has_approve_permission: 审批人权限测试test_business_has_create_edit_permissions: 业务人员权限测试test_legal_has_approve_and_export_permissions: 法务权限测试test_get_permissions_returns_list: 权限列表测试test_get_user_role_permissions_returns_all_roles: 所有角色测试test_api_get_role_permissions: API 获取角色权限测试test_api_check_permission_allowed: API 权限检查允许测试test_api_check_permission_denied: API 权限检查拒绝测试test_permission_check_unknown_role: 未知角色测试test_permission_check_unknown_permission: 未知权限测试
验证结果
python -m pytest yuqei-contract-platform/services/contract-api/tests -q # 55 passed
Phase 7 进度
| 功能 | 状态 |
|---|---|
| 租户隔离 | ✅ |
| 审计完整性 | ✅ |
| 数据备份和恢复 | ✅ |
| 错误监控 | ✅ |
| 权限矩阵 | ✅(本轮) |
| 性能压测 | 🔄 |
| 安全扫描 | 🔄 |
| 部署文档 | 🔄 |
后续建议
Phase 7 核心安全功能已完成。下一步可进行性能压测或部署文档编写。