130 lines
2.8 KiB
Markdown
130 lines
2.8 KiB
Markdown
# 用户角色访问控制指南
|
||
|
||
## 用户名格式规则
|
||
|
||
- **管理员**: `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的具体实现了。 |