54 lines
1.3 KiB
Python
54 lines
1.3 KiB
Python
|
import logging
|
||
|
from typing import Optional, TYPE_CHECKING
|
||
|
|
||
|
from fastapi_users import (
|
||
|
BaseUserManager,
|
||
|
IntegerIDMixin,
|
||
|
)
|
||
|
|
||
|
from config import settings
|
||
|
|
||
|
from models import User
|
||
|
|
||
|
if TYPE_CHECKING:
|
||
|
from fastapi import Request
|
||
|
|
||
|
|
||
|
class UserManager(IntegerIDMixin, BaseUserManager[User, settings.type.UserIdType]):
|
||
|
reset_password_token_secret = settings.access_token.reset_password_token_secret
|
||
|
verification_token_secret = settings.access_token.verification_token_secret
|
||
|
|
||
|
async def on_after_register(
|
||
|
self,
|
||
|
user: User,
|
||
|
request: Optional["Request"] = None,
|
||
|
):
|
||
|
logging.warning(
|
||
|
"User %r has registered.",
|
||
|
user.id,
|
||
|
)
|
||
|
|
||
|
async def on_after_request_verify(
|
||
|
self,
|
||
|
user: User,
|
||
|
token: str,
|
||
|
request: Optional["Request"] = None,
|
||
|
):
|
||
|
logging.warning(
|
||
|
"Verification requested for user %r. Verification token: %r",
|
||
|
user.id,
|
||
|
token,
|
||
|
)
|
||
|
|
||
|
async def on_after_forgot_password(
|
||
|
self,
|
||
|
user: User,
|
||
|
token: str,
|
||
|
request: Optional["Request"] = None,
|
||
|
):
|
||
|
logging.warning(
|
||
|
"User %r has forgot their password. Reset token: %r",
|
||
|
user.id,
|
||
|
token,
|
||
|
)
|