java_web/test05/USER_ROLE_GUIDE.md

2.8 KiB
Raw Permalink Blame History

用户角色访问控制指南

用户名格式规则

  • 管理员: 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. 管理员登录

# 假设已存在管理员用户 a_admin
POST /userAction/login
{
  "username": "a_admin",
  "password": "password"
}

2. 管理员创建老师用户

POST /userManagementAction/createTeacher
Headers: token: <登录返回的JWT>
{
  "username": "t_zhangsan",
  "password": "password123"
}

3. 老师创建学生用户

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的具体实现了。