5.8 KiB
5.8 KiB
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
activity.checkin权限在 V015 中引用但未在 permissions 表中插入 — 将在 Phase 14/15 补充- 现有 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,等待下一步指令。