add user manager

This commit is contained in:
IluaAir
2025-06-22 13:17:12 +03:00
parent c1fab8feea
commit 37f2b39bd2
2 changed files with 39 additions and 1 deletions

View File

@@ -8,6 +8,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
from src.db.database import async_session_maker
from src.models import UsersORM, AccessToken
from src.utils.user_manager import UserManager
async def get_db() -> AsyncGenerator[AsyncSession, None]:
@@ -18,7 +19,7 @@ async def get_db() -> AsyncGenerator[AsyncSession, None]:
DBDep = Annotated[AsyncSession, Depends(get_db)]
async def get_user_db(session: DBDep):
async def get_users_db(session: DBDep):
yield SQLAlchemyUserDatabase(session, UsersORM)
@@ -29,3 +30,7 @@ async def get_access_token_db(
ATDep = Annotated[AccessTokenDatabase[AccessToken], Depends(get_access_token_db)]
async def get_user_manager(users_db: Annotated[SQLAlchemyUserDatabase, Depends(get_users_db)]):
yield UserManager(users_db)

View File

@@ -1 +1,34 @@
import logging
from typing import Optional
from fastapi import Request
from fastapi_users import BaseUserManager, IntegerIDMixin
from src.models import UsersORM
from src.settings import settings
logger = logging.getLogger()
class UserManager(IntegerIDMixin, BaseUserManager[UsersORM, int]):
reset_password_token_secret = settings.SECRET
verification_token_secret = settings.SECRET
async def on_after_register(
self, user: UsersORM, request: Optional[Request] = None
):
logger.warning("User %r has registered.", user.id)
async def on_after_forgot_password(
self, user: UsersORM, token: str, request: Optional[Request] = None
):
logger.warning(
"User %r has forgot their password. Reset token: %r", user.id, token
)
async def on_after_request_verify(
self, user: UsersORM, token: str, request: Optional[Request] = None
):
logger.warning(
"Verification requested for user %r. Verification token: %r", user.id, token
)