| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- """
- 用户本地模型权限路由
- 处理用户对本地模型的权限管理接口
- """
- from typing import List, Dict
- from fastapi import APIRouter, Depends, HTTPException, status
- from sqlalchemy.orm import Session
- from app.database import get_db
- from app.services.user_local_model_permission_service import UserLocalModelPermissionService
- from app.dependencies.admin_auth import get_current_admin
- from app.schemas.user_local_model_permission import (
- UserLocalModelPermissionResponse,
- UpdateUserLocalModelPermissionRequest,
- UpdateUserAllLocalModelPermissionsRequest
- )
- router = APIRouter(prefix="/api/admin/users", tags=["用户本地模型权限"])
- @router.get("/{user_id}/local-model-permissions", response_model=List[UserLocalModelPermissionResponse])
- async def get_user_local_model_permissions(
- user_id: str,
- db: Session = Depends(get_db),
- current_admin = Depends(get_current_admin)
- ):
- """
- 获取用户的本地模型权限列表
- """
- service = UserLocalModelPermissionService(db)
- permissions = service.get_user_model_permissions(user_id)
- return permissions
- @router.put("/{user_id}/local-model-permissions/{model_id}")
- async def update_user_local_model_permission(
- user_id: str,
- model_id: int,
- request: UpdateUserLocalModelPermissionRequest,
- db: Session = Depends(get_db),
- current_admin = Depends(get_current_admin)
- ):
- """
- 更新用户对特定本地模型的权限
- """
- service = UserLocalModelPermissionService(db)
- success = await service.update_user_model_permission(
- user_id=user_id,
- model_id=model_id,
- has_access=request.has_access
- )
-
- if not success:
- raise HTTPException(
- status_code=status.HTTP_400_BAD_REQUEST,
- detail="更新权限失败"
- )
-
- return {"message": "权限更新成功"}
- @router.put("/{user_id}/local-model-permissions")
- async def update_user_all_local_model_permissions(
- user_id: str,
- request: UpdateUserAllLocalModelPermissionsRequest,
- db: Session = Depends(get_db),
- current_admin = Depends(get_current_admin)
- ):
- """
- 更新用户对所有本地模型的权限
- """
- service = UserLocalModelPermissionService(db)
- success = await service.update_user_all_model_permissions(
- user_id=user_id,
- has_access=request.has_access
- )
-
- if not success:
- raise HTTPException(
- status_code=status.HTTP_400_BAD_REQUEST,
- detail="更新权限失败"
- )
-
- return {"message": "权限更新成功"}
|