From fd9fc7ab82eeed17834b7ac49e84984c7e421274 Mon Sep 17 00:00:00 2001 From: xiamuceer-j Date: Tue, 13 Jan 2026 16:44:07 +0800 Subject: [PATCH] =?UTF-8?q?style:=20=E4=BC=98=E5=8C=96=E8=A7=92=E8=89=B2/?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2UI?= =?UTF-8?q?=E5=B8=83=E5=B1=80=EF=BC=8C=E9=87=87=E7=94=A8=E5=A4=9A=E5=88=97?= =?UTF-8?q?=E7=B4=A7=E5=87=91=E8=AE=BE=E8=AE=A1=EF=BC=8C=E6=8F=90=E5=8D=87?= =?UTF-8?q?=E8=A7=86=E8=A7=89=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/api/characters.py | 34 +--------------------------------- 1 file changed, 1 insertion(+), 33 deletions(-) diff --git a/backend/app/api/characters.py b/backend/app/api/characters.py index cfb487e..a8ce15e 100644 --- a/backend/app/api/characters.py +++ b/backend/app/api/characters.py @@ -25,44 +25,12 @@ from app.services.import_export_service import ImportExportService from app.schemas.import_export import CharactersExportRequest, CharactersImportResult from app.logger import get_logger from app.api.settings import get_user_ai_service +from app.api.common import verify_project_access router = APIRouter(prefix="/characters", tags=["角色管理"]) logger = get_logger(__name__) -async def verify_project_access(project_id: str, user_id: str, db: AsyncSession) -> Project: - """ - 验证用户是否有权访问指定项目 - - Args: - project_id: 项目ID - user_id: 用户ID - db: 数据库会话 - - Returns: - Project: 项目对象 - - Raises: - HTTPException: 401 未登录,404 项目不存在或无权访问 - """ - if not user_id: - raise HTTPException(status_code=401, detail="未登录") - - result = await db.execute( - select(Project).where( - Project.id == project_id, - Project.user_id == user_id - ) - ) - project = result.scalar_one_or_none() - - if not project: - logger.warning(f"项目访问被拒绝: project_id={project_id}, user_id={user_id}") - raise HTTPException(status_code=404, detail="项目不存在或无权访问") - - return project - - @router.get("", response_model=CharacterListResponse, summary="获取角色列表") async def get_characters( project_id: str,