# 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 - [x] V015 SQL 语法正确,UUID 不冲突 - [x] 新角色不在 super_admin 默认权限外获取额外权限 - [x] content_editor 权限列表不含任何 user.* 权限 - [x] counselor 权限列表不含 user.* / message.* / activity.* - [x] station_operator 权限列表不含 user.sensitive.view - [x] 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,等待下一步指令。