fix: 修复课程权限和添加409冲突统一处理
Some checks failed
continuous-integration/drone/push Build is failing

1. 课程权限修复:
   - 创建课程: require_admin -> require_admin_or_manager
   - 更新课程: require_admin -> require_admin_or_manager
   - 现在manager角色也可以创建和编辑课程

2. 全局409冲突处理:
   - 添加IntegrityError异常处理器
   - 自动识别常见冲突类型(用户名/邮箱/手机号/名称/编码)
   - 返回友好的中文错误提示
This commit is contained in:
yuliang_guo
2026-02-02 16:21:02 +08:00
parent 6317eb2479
commit 659f60e765
2 changed files with 44 additions and 4 deletions

View File

@@ -81,11 +81,11 @@ async def get_courses(
async def create_course(
course_in: CourseCreate,
request: Request,
current_user: User = Depends(require_admin),
current_user: User = Depends(require_admin_or_manager),
db: AsyncSession = Depends(get_db),
):
"""
创建课程(需要管理员权限)
创建课程(需要管理员或经理权限)
- **name**: 课程名称
- **description**: 课程描述
@@ -144,11 +144,11 @@ async def get_course(
async def update_course(
course_id: int,
course_in: CourseUpdate,
current_user: User = Depends(require_admin),
current_user: User = Depends(require_admin_or_manager),
db: AsyncSession = Depends(get_db),
):
"""
更新课程(需要管理员权限)
更新课程(需要管理员或经理权限)
- **course_id**: 课程ID
- **course_in**: 更新的课程数据(所有字段都是可选的)