Files
ai-contract-platform/project-docs/V2-permission-matrix-2026-06-26.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

3.0 KiB
Raw Blame History

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 核心安全功能已完成。下一步可进行性能压测或部署文档编写。