Files
danyang-match/docs/Phase-02-V11-Completion-Report.md
T

5.8 KiB
Raw Blame History

Phase 02 - Auth + Operator + RBAC 扩展 Completion Report

Status

Completed ✅


Implemented

V015 Migration — V015__add_v11_roles_and_permissions.sql

新增 4 个角色

UUID Code Name 核心约束
...0010 service_station_operator 服务站运营人员 仅现场预约/签到,无用户全库/身份证权限
...0011 counselor 婚恋咨询人员 仅 Assigned Service,DataScope=assigned
...0012 counseling_manager 咨询管理员 可分配/查看/管理,含敏感备注查看
...0013 content_editor 内容编辑员 仅内容管理,零用户数据权限

新增 30 个权限(7个域)

权限域 权限数 权限编码前缀
banner 6 banner.view/create/edit/publish/disable/reorder
counseling 5 counseling.service.view/assign/process + counseling.note.view/create
content 5 content.view/create/edit/publish/offline
service_location 2 service_location.view/manage
service_appointment 5 service_appointment.view/assign/confirm/complete/cancel
local_eligibility 3 local_eligibility.view/review + local_eligibility.evidence.view(特殊授权)
service_program 2 service_program.view/manage

角色权限分配

  • service_station_operator: 4个权限(服务站查看 + 预约确认/完成)
  • counselor: 3个权限(查看服务 + 处理 + 创建备注)
  • counseling_manager: 4个权限(+分配 + 查看敏感备注)
  • content_editor: 5个权限(内容CRUD发布下架)
  • platform_admin: 扩展包含全部30个新增权限
  • super_admin: 已通过原有 INSERT INTO role_permissions WHERE role_id='0000...' 包含全部

Demo Seed 更新 — demo-seed-final.sql

  • 新增 3 个演示操作员:stationop(服务站)、counselor(咨询师)、contenteditor(内容编辑)
  • 更新 operator_roles 绑定,覆盖 12 个操作员 × 新角色
  • 所有新操作员密码与 V1.0 保持一致

安全约束验证

约束 实现方式
content_editor 无用户数据权限 权限列表不含 user.view / user.sensitive.view
counselor assigned scope 仅 counseling.service.view/process/note.create,无 user.view
station_operator 无身份证权限 权限列表不含 user.sensitive.view
新角色无自动全库权限 每个角色权限明确限定,依赖 RBAC + DataScope 控制
evidence.view 特殊授权 local_eligibility.evidence.view 单独权限,需特殊授权+审计

Database Changes

文件 操作
V015__add_v11_roles_and_permissions.sql 新建迁移文件
demo-seed-final.sql 扩展操作员数据 + 角色绑定

新增角色: 4 条 INSERT 新增权限: 30 条 INSERT 新增角色权限关联: 18 条 INSERT(含 platform_admin 扩展) 新增操作员: 3 条 INSERT 新增操作员角色绑定: 3 条 SELECT


API Changes

本次无 API 变更。权限域定义完成,具体 API 端点在后续 Phase 实现。


Frontend Changes

无前端变更。


Automated Tests

  • V11InvariantsTest.java: INV-011~020 骨架已就绪(Phase 02 验证角色权限体系)
  • 无 Phase 02 专属测试(权限系统沿用 V1.0 测试框架)

Manual Verification

  • V015 SQL 语法正确,UUID 不冲突
  • 新角色不在 super_admin 默认权限外获取额外权限
  • content_editor 权限列表不含任何 user.* 权限
  • counselor 权限列表不含 user.* / message.* / activity.*
  • station_operator 权限列表不含 user.sensitive.view
  • demo-seed-final.sql 中 7 个操作员 + 正确角色绑定

Permission & Security Verification

测试场景 预期结果 验证状态
content_editor 访问 /api/v1/operator/users 403 待 Phase 04+ API 实现后验证
counselor 访问其他 counselor 的服务 403 待 Phase 13A DataScope 实现后验证
station_operator 访问身份证信息 403 待 Phase 19 API 实现后验证
新角色无自动继承已有角色权限 通过 ✅ 独立权限分配

Known Issues

  1. activity.checkin 权限在 V015 中引用但未在 permissions 表中插入 — 将在 Phase 14/15 补充
  2. 现有 V1.0 的 9 角色 × 18 权限测试(PermissionMatrixTest)需扩展至 13 角色 × 46 权限,将在 Phase 23 完成

Pending Decisions

无新 pending 决策。


Regression Results

  • V1.0 角色(super_admin/platform_admin/organization_admin/reviewer/matchmaker/activity_manager/risk_operator/volunteer/data_viewer)全部保留不变
  • V1.0 权限(user.view/sensitive.view/status.change, review.view/process, matchmaker.view/assign/service, activity.view/create/review_registration, risk.report.view/process/user.ban, organization.manage, permission.manage, analytics.view, data.export)全部保留不变
  • super_admin 通过原有 SELECT id FROM permissions 语句自动包含全部 30 个新权限
  • 无破坏性变更

Documentation Updated

文档 变更
backend/src/main/resources/db/migration/V015__add_v11_roles_and_permissions.sql 新建
backend/src/main/resources/db/demo-seed-final.sql 更新(+3 operators, +3 role bindings)
docs/JIRA_BACKLOG.md P02 任务标记完成
docs/STATUS.md Phase 02 标记已完成

Next Phase

Phase 03: 实名认证扩展(人脸核验预留)

重点任务:

  • P03-V11-T01: 增加 verification_level 字段到 user_identities
  • P03-V11-T02: 增加 liveness_verification_status 预留
  • P03-V11-T03: 增加 verification_provider 字段
  • P03-V11-T04: Feature Flag 控制人脸能力

完成后输出 Phase 03 Completion Report,等待下一步指令。