From 074b935a0ab2a593b28efdf45f69822e2cabfaf5 Mon Sep 17 00:00:00 2001 From: SZCJW <792430652@qq.com> Date: Wed, 4 Mar 2026 01:15:11 +0800 Subject: [PATCH] init --- src/api/auth_routes.py | 5 ++--- src/services/auth_service.py | 6 +++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/api/auth_routes.py b/src/api/auth_routes.py index 92efbc9..0ca0f5c 100644 --- a/src/api/auth_routes.py +++ b/src/api/auth_routes.py @@ -5,6 +5,7 @@ from pydantic import BaseModel from typing import Optional, List from datetime import timedelta from sqlalchemy import select +from sqlalchemy.orm import selectinload from database.database import get_db_session from services.auth_service import ( @@ -190,9 +191,7 @@ async def list_users( ): check_admin(current_user) result = await db_session.execute( - select(User).options( - select(User).options() - ) + select(User).options(selectinload(User.user_roles).selectinload(UserRole.role)) ) users = result.scalars().all() return [ diff --git a/src/services/auth_service.py b/src/services/auth_service.py index 59eaa61..302ecf9 100644 --- a/src/services/auth_service.py +++ b/src/services/auth_service.py @@ -10,7 +10,7 @@ from sqlalchemy.orm import selectinload from config.settings import settings from database.database import get_db_session -from models.database import User +from models.database import User, UserRole pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/api/auth/login", auto_error=False) @@ -56,7 +56,7 @@ async def get_current_user( raise credentials_exception result = await db_session.execute( - select(User).where(User.username == username) + select(User).options(selectinload(User.user_roles).selectinload(UserRole.role)).where(User.username == username) ) user = result.scalar_one_or_none() @@ -93,7 +93,7 @@ async def get_current_admin_user( async def authenticate_user(db_session: AsyncSession, username: str, password: str) -> Optional[User]: result = await db_session.execute( - select(User).where(User.username == username) + select(User).options(selectinload(User.user_roles).selectinload(UserRole.role)).where(User.username == username) ) user = result.scalar_one_or_none()