Files
railwaysystem/docs/development/rbac-r2/08_implementation_task_breakdown.md
T

7.6 KiB

RailwaySystem R.2B 落地实现任务拆分指南 (Implementation Task Breakdown)

  • 设计版本: R.2A Design Freeze
  • 设计日期: 2026-09-15
  • 核心目标: 将 R.2B 实现阶段拆解为 10 个粒度适中、依赖严密、支持多工程师并行作业的高效子任务。

1. 任务依赖关系与并行推进路线图

flowchart TD
    subgraph Phase1["阶段一: 数据库与权限基础设施 (前置依赖)"]
        B1["RBAC-B1: 身份绑定与约束脚本 (004.sql)"]
        B2["RBAC-B2: 角色菜单与权限补全脚本 (005.sql)"]
    end

    subgraph Phase2["阶段二: 独立并行开发 (无直接阻塞)"]
        B3["RBAC-B3: 教师自服务后端 API (/train/me/teacher)"]
        B4["RBAC-B4: 学员自服务后端 API (/train/me/student)"]
        B5["RBAC-B5: 教师工作台前端视图 (Teacher Portal)"]
        B6["RBAC-B6: 学员个人中心前端视图 (Student Portal)"]
        B7["RBAC-B7: 登录页注册策略改造 (隐藏入口)"]
        B8["RBAC-B8: 班牌权限命名空间对齐 (system->train)"]
    end

    subgraph Phase3["阶段三: 安全联调与全量验收"]
        B9["RBAC-B9: 数据范围与 IDOR 安全渗透测试"]
        B10["RBAC-B10: 管理端业务无损全量回归 (E2E-R2)"]
    end

    B1 --> B3
    B1 --> B4
    B2 --> B3
    B2 --> B4
    B2 --> B5
    B2 --> B6

    B3 --> B5
    B4 --> B6

    B5 --> B9
    B6 --> B9
    B7 --> B10
    B8 --> B10
    B9 --> B10

2. 详细任务卡片清单 (RBAC-B1 ~ RBAC-B10)

任务 1: RBAC-B1 - 身份绑定与物理约束脚本 (Identity Binding & DDL) [COMPLETED (Wave 1)]

  • 依赖关系: 无前置依赖,首发任务。
  • 当前状态: 已完成 (脚本编写完成并通过静态契约测试验证,已就绪待运维发布)
  • 交付内容:
    1. RuoYi-Vue/sql/system/kingbase/004_rbac_identity_binding.sql。
    2. 针对 train_teacher(user_id) 与 train_student(user_id) 建立非空部分唯一索引与约束验证块。
    3. RbacPermissionMigrationContractTest 验证通过。
  • 完成标志: 脚本编写符合 Kingbase 语法,事务与约束验证完备。

任务 2: RBAC-B2 - 角色预置与权限补齐脚本 (Role & Permission Migration) [COMPLETED (Wave 1)]

  • 依赖关系: 依赖 B1 完成。
  • 当前状态: 已完成 (脚本编写完成并通过静态契约测试验证,已就绪待运维发布)
  • 交付内容:
    1. RuoYi-Vue/sql/system/kingbase/005_training_roles_permissions.sql。
    2. 预置 train_admin (3), train_teacher (4), train_student (5) 角色。
    3. 补齐 sys_menu 中基础管理模块缺失的全部按钮级 perms 行 (2201~2240)。
    4. 建立角色的初始菜单与功能权限绑定映射及自检验证块。
  • 完成标志: 脚本契约测试 testMigration005_RoleAndPermissionScriptContract 验证通过。

任务 3: RBAC-B3 - 教师后端自服务体系实现 (Teacher Backend) [COMPLETED (Wave 1)]

  • 依赖关系: 依赖 B1, B2。与 B4、B7、B8 可完全并行。
  • 当前状态: 已完成
  • 交付内容:
    1. 控制器 TrainTeacherMeController.java (/train/me/teacher/...)。
    2. 实现获取教师本人画像、任教班级、授课课表、班级学员名册(脱敏)与课次出勤流水。
    3. 强制校验教师身份与教学班级/课次归属,杜绝跨教师越权 (IDOR)。
    4. TeacherSelfServiceApiTest 7 个单测用例全部通过。
  • 完成标志: 接口单元测试通过率 100%,越权拦截测试生效。

任务 4: RBAC-B4 - 学员后端自服务体系实现 (Student Backend) [COMPLETED (Wave 1)]

  • 依赖关系: 依赖 B1, B2。与 B3、B7、B8 可完全并行。
  • 当前状态: 已完成
  • 交付内容:
    1. 控制器 TrainStudentMeController.java (/train/me/student/...)。
    2. 实现获取学员本人档案、参训班级状态、个人课表、报到凭据、个人考勤、累计学时与多维画像。
    3. 强制校验本人归属,杜绝任何外部主键传入。
    4. StudentSelfServiceApiTest 6 个单测用例全部通过。
  • 完成标志: 接口单元测试通过率 100%,敏感信息脱敏合格。

任务 5: RBAC-B5 - 教师工作台前端视图开发 (Teacher Frontend) [PENDING (Wave 2)]

  • 依赖关系: 依赖 B2 菜单路由,可与 B3 并行(采用 Mock 或接口契约联调)。
  • 任务目标:
    1. 在 build_ui/src/views/train/teacher/ 下开发工作台看板与我的日程日历组件。
    2. 开发任教班级花名册抽屉视图。
  • 完成标志: 教师登录后正常展现日历课表与花名册。

任务 6: RBAC-B6 - 学员个人培训中心前端开发 (Student Frontend) [PENDING (Wave 2)]

  • 依赖关系: 依赖 B2 菜单路由,可与 B4 并行开发。
  • 任务目标:
    1. 在 build_ui/src/views/train/student/ 下开发学员培训个人中心。
    2. 整合培训流程步骤条、今日课表卡片、个人考勤打卡流水与雷达画像组件。
  • 完成标志: 学员登录后清晰直观呈现个人培训全流程状态。

任务 7: RBAC-B7 - 登录界面注册入口安全改造 (Login UI Policy) [PENDING (Wave 2)]

  • 依赖关系: 独立任务,可立即开工。
  • 任务目标:
    1. 修改 build_ui/src/views/login.vue,彻底关闭 register 开关,移除“立即注册”链接。
    2. 增加居中提示:“账号由培训管理部门统一创建与授权维护”。
  • 完成标志: 登录页面无注册链接,提示文案清晰优雅。

任务 8: RBAC-B8 - 班牌权限命名空间统一对齐 (Namespace Alignment) [PARTIALLY COMPLETED (Wave 1 后端已完成)]

  • 依赖关系: 独立任务,可立即开工。
  • 当前状态:
    • 后端:TrainElectronicBoardController.java 中的权限注解已全部从 system:board:* 收敛统一为 train:board:* [COMPLETED]
    • 前端:build_ui/src/views/train/board/index.vue 中的 v-hasPermi 对齐计划在 Wave 2 前端阶段完成 [PENDING]
  • 完成标志: 静态契约测试 testElectronicBoardControllerPermissionsAligned 验证通过。

任务 9: RBAC-B9 - 数据范围与 IDOR 安全渗透自动化测试 (IDOR Gate) [PARTIALLY COMPLETED (Wave 1 后端 IDOR 已通过)]

  • 依赖关系: 依赖 B3、B4、B5、B6 联调完成。
  • 当前状态:
    • 后端 IDOR 单测套件已完成并验证:
      • RbacIdorSecurityTest: 模拟跨教师越权访问他人学员名册与考勤,跨学员越权探测等,全部被严密拒止。
      • TrainingIdentityServiceTest: 验证身份唯一性与互斥性。
    • 端到端渗透验收:保留至三角色前端集成后进行。
  • 完成标志: 后端自动化测试中 IDOR_LEAK_COUNT = 0。

任务 10: RBAC-B10 - 管理端业务全流程无损回归测试 (Admin Regression) [PENDING (Wave 3)]

  • 依赖关系: 汇总任务,依赖全部前置任务。
  • 任务目标:
    1. 执行 E2E-R2 验收方案全流程。
    2. 执行管理端原有 30 个生产核心用例回归测试。
  • 完成标志: 管理端核心业务 100% PASS,实现三角色完整 RBAC 闭环。

3. 并行施工调度建议与 Wave 进展

  • Wave 1 (已完成):
    • 后端基础设施与迁移脚本准备: RBAC-B1, RBAC-B2 (完成)
    • 核心身份服务与自服务后端: RBAC-B3, RBAC-B4 (完成)
    • 班牌后端权限收敛: RBAC-B8 (后端) (完成)
    • 安全与契约单元测试: RBAC-B9 (后端) (完成,194/194 PASS)
  • Wave 2 (待推进):
    • 教师工作台前端视图开发: RBAC-B5
    • 学员个人培训中心前端开发: RBAC-B6
    • 登录入口安全策略改造: RBAC-B7
    • 班牌前端权限指令对齐: RBAC-B8 (前端)
  • Wave 3 (最终验收):
    • 三角色端到端联调与 E2E-R2 回归测试: RBAC-B10