add user manager
This commit is contained in:
@@ -8,6 +8,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
|||||||
|
|
||||||
from src.db.database import async_session_maker
|
from src.db.database import async_session_maker
|
||||||
from src.models import UsersORM, AccessToken
|
from src.models import UsersORM, AccessToken
|
||||||
|
from src.utils.user_manager import UserManager
|
||||||
|
|
||||||
|
|
||||||
async def get_db() -> AsyncGenerator[AsyncSession, None]:
|
async def get_db() -> AsyncGenerator[AsyncSession, None]:
|
||||||
@@ -18,7 +19,7 @@ async def get_db() -> AsyncGenerator[AsyncSession, None]:
|
|||||||
DBDep = Annotated[AsyncSession, Depends(get_db)]
|
DBDep = Annotated[AsyncSession, Depends(get_db)]
|
||||||
|
|
||||||
|
|
||||||
async def get_user_db(session: DBDep):
|
async def get_users_db(session: DBDep):
|
||||||
yield SQLAlchemyUserDatabase(session, UsersORM)
|
yield SQLAlchemyUserDatabase(session, UsersORM)
|
||||||
|
|
||||||
|
|
||||||
@@ -29,3 +30,7 @@ async def get_access_token_db(
|
|||||||
|
|
||||||
|
|
||||||
ATDep = Annotated[AccessTokenDatabase[AccessToken], Depends(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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user