add is_superuser for jwt token

This commit is contained in:
IluaAir
2025-09-20 13:55:36 +03:00
parent 0de7d63817
commit e0cddbdd34
2 changed files with 8 additions and 4 deletions

View File

@@ -1,4 +1,4 @@
from pydantic import BaseModel
from pydantic import BaseModel, ConfigDict, Field
class Token(BaseModel):
@@ -8,5 +8,8 @@ class Token(BaseModel):
class TokenData(BaseModel):
id: int
sub: str
sub: str = Field(alias='username')
is_superuser: bool
is_active: bool
model_config = ConfigDict(populate_by_name=True)

View File

@@ -2,7 +2,7 @@ from fastapi import HTTPException
from src.core.auth_manager import AuthManager
from src.core.settings import settings
from src.schemas.auth import Token
from src.schemas.auth import Token, TokenData
from src.schemas.users import User, UserAdd, UserRequestADD, UserWithHashedPass
from src.services.base import BaseService
@@ -27,6 +27,7 @@ class AuthService(BaseService):
detail="Incorrect username or password",
)
user = UserWithHashedPass.model_validate(result)
user_token = TokenData.model_validate(user.model_dump())
verify = AuthManager.verify_password(
plain_password=password, hashed_password=user.hashed_password
)
@@ -36,7 +37,7 @@ class AuthService(BaseService):
detail="Incorrect username or password",
)
access_token = AuthManager.create_access_token(
data={"id": user.id, "sub": user.username, "is_active": user.is_active}
user_token.model_dump()
)
return Token(
access_token=access_token, token_type=settings.access_token.token_type