# Epic 006: 直播课堂管理员权限自动优化 ## Epic Goal 优化直播课堂的joinClass功能,当老师用户加入非自己创建的课堂时,自动登录群创建者账号并授予管理员权限,确保老师能够正常管理课堂。 ## Epic Description ### Existing System Context - **当前相关功能**: useClassroom.ts中的joinClass方法负责处理用户加入课堂的逻辑,包括群组信息查询、权限检查等 - **技术栈**: React + TypeScript, Alibaba Cloud RTC/IM SDK, Hono.js后端API - **集成点**: 阿里云IM群组管理API、RTC频道管理、用户认证系统 ### Enhancement Details - **新增/修改内容**: 在joinClass方法中添加管理员权限自动提升逻辑,当检测到当前老师用户不是群创建者且不在管理员列表中时,自动执行权限提升流程 - **集成方式**: 通过现有的IM群组管理API调用modifyGroup方法,新增管理员权限检查和处理逻辑 - **成功标准**: 老师用户能够无缝加入任何课堂并获得必要的管理权限,无需手动干预 ## Stories 1. **Story 1: 实现管理员权限自动提升功能** - 在joinClass方法中添加群组创建者和管理员列表检查逻辑 - 实现权限状态判断,识别需要权限提升的场景 - 创建权限提升方法,处理群创建者登录和modifyGroup调用 - 添加错误处理和降级机制,确保功能健壮性 - 优化用户体验,提供友好的提示信息 ## Compatibility Requirements - [x] 现有API保持不变 - [x] 数据库架构无变化 - [x] UI变更遵循现有模式 - [x] 性能影响最小化 ## Risk Mitigation - **主要风险**: 权限提升失败导致老师无法正常管理课堂 - **缓解措施**: 实现优雅的降级处理,确保即使权限提升失败也能正常加入课堂 - **回滚计划**: 如果新功能出现问题,可以回退到原有的joinClass逻辑 ## Definition of Done - [ ] 所有故事完成且验收标准满足 - [ ] 现有功能通过测试验证 - [ ] 集成点正常工作 - [ ] 文档适当更新 - [ ] 现有功能无回归 ## 技术实现要点 基于对useClassroom.ts:666-820行joinClass方法的分析,需要在以下位置添加优化逻辑: ```typescript // 在获取群组信息后添加权限检查 let groupInfo; try { groupInfo = await gm!.queryGroup(classId); // 新增:权限自动提升逻辑 if (role === Role.Teacher && groupInfo) { const isCreator = groupInfo.creator === userId; const isAdmin = groupInfo.admins?.includes(userId) || false; if (!isCreator && !isAdmin) { // 需要权限提升 await autoPromoteToAdmin(gm!, classId, userId, groupInfo.creator); } } } catch (err) { console.error('获取群组信息失败:', err); } ``` ## 验证清单 **范围验证:** - [x] Epic可在1个故事内完成(功能相对简单) - [x] 无需架构文档 - [x] 增强遵循现有模式 - [x] 集成复杂度可控 **风险评估:** - [x] 对现有系统风险低 - [x] 回滚计划可行 - [x] 测试方法覆盖现有功能 - [x] 团队对集成点有足够了解 **完整性检查:** - [x] Epic目标清晰可实现 - [x] 故事范围适当 - [x] 成功标准可衡量 - [x] 依赖项已识别 --- **Story Manager Handoff:** "请为此棕地史诗开发详细的用户故事。关键考虑因素: - 这是对运行React + TypeScript + Alibaba Cloud RTC/IM SDK的现有系统的增强 - 集成点:阿里云IM群组管理API、用户认证系统 - 要遵循的现有模式:useClassroom.ts中的joinClass方法模式 - 关键兼容性要求:保持现有API不变,确保向后兼容 - 每个故事必须包含验证现有功能保持完整的检查 该史诗应在提供{Epic Goal}的同时保持系统完整性。"