# 用户角色访问控制指南 ## 用户名格式规则 - **管理员**: `a_<姓名>` (例如: `a_admin`, `a_zhangsan`) - **老师**: `t_<姓名>` (例如: `t_teacher`, `t_lisi`) - **学生**: `s_<姓名>` (例如: `s_student`, `s_wangwu`) ## 权限说明 ### 管理员权限 - 可以访问所有API端点 - 可以创建老师用户 - 可以创建学生用户 - 可以创建管理员用户 ### 老师权限 - 可以访问老师端API (`/teacherAction/**`) - 可以访问学生端API (`/studentAction/**`) - 可以创建学生用户 - 不能创建老师或管理员用户 ### 学生权限 - 只能访问学生端API (`/studentAction/**`) - 不能创建任何用户 ## API端点 ### 用户管理API (`/userManagementAction/**`) #### 创建老师用户 ``` POST /userManagementAction/createTeacher 参数: username, password 权限: 仅管理员 ``` #### 创建学生用户 ``` POST /userManagementAction/createStudent 参数: username, password 权限: 管理员和老师 ``` #### 创建管理员用户 ``` POST /userManagementAction/createAdmin 参数: username, password 权限: 仅管理员 ``` ### 课程管理API示例 (`/courseAction/**`) #### 选课API (学生端) ``` POST /courseAction/selectCourse 参数: courseId 权限: 学生 状态: 待实现 ``` #### 创建课程API (老师端) ``` POST /courseAction/createCourse 参数: courseName, courseDescription 权限: 老师 状态: 待实现 ``` #### 获取课程列表 ``` GET /courseAction/getCourses 参数: page, pageSize 权限: 所有用户 状态: 待实现 ``` ## 使用示例 ### 1. 管理员登录 ```bash # 假设已存在管理员用户 a_admin POST /userAction/login { "username": "a_admin", "password": "password" } ``` ### 2. 管理员创建老师用户 ```bash POST /userManagementAction/createTeacher Headers: token: <登录返回的JWT> { "username": "t_zhangsan", "password": "password123" } ``` ### 3. 老师创建学生用户 ```bash POST /userManagementAction/createStudent Headers: token: <老师登录返回的JWT> { "username": "s_lisi", "password": "password123" } ``` ## 注意事项 1. 所有API调用都需要在请求头中包含有效的JWT token 2. 用户名必须严格按照格式要求,否则会被拒绝 3. 拦截器会自动验证用户角色权限 4. 课程相关API目前只是空实现,需要创建相应的数据库表后才能完成功能 ## 数据库表需求 为了完整实现课程功能,需要创建以下表: 1. **课程表** (courses) - id, course_name, course_description, teacher_id, create_time, etc. 2. **选课表** (student_courses) - id, student_id, course_id, select_time, etc. 3. **课程老师映射表** (如果需要多对多关系) - id, course_id, teacher_id, etc. 这些表创建后,就可以完成课程管理API的具体实现了。