Coverage for src / auth / manager.py: 100%
18 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-10 22:03 +0200
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-10 22:03 +0200
1from fastapi import Depends
2from fastapi_users import BaseUserManager, FastAPIUsers, IntegerIDMixin
3from fastapi_users_db_sqlalchemy import SQLAlchemyUserDatabase
4from sqlalchemy.ext.asyncio import AsyncSession
5from src.auth.auth import auth_backend
6from src.database import get_db
7from src.auth.models import User
9from src.config import SECRET
12class UserManager(IntegerIDMixin, BaseUserManager[User, int]):
13 reset_password_token_secret = SECRET
14 verification_token_secret = SECRET
17async def get_user_db(session: AsyncSession = Depends(get_db)):
18 yield SQLAlchemyUserDatabase(session, User)
21async def get_user_manager(user_db: SQLAlchemyUserDatabase = Depends(get_user_db)):
22 yield UserManager(user_db)
24fastapi_users = FastAPIUsers[User, int](get_user_manager, [auth_backend])
25current_optional_user = fastapi_users.current_user(optional=True)
26current_user = fastapi_users.current_user()