Move on_after_register to manager

This commit is contained in:
François Voron
2021-09-14 15:02:17 +02:00
parent 8967138375
commit 38d4aed817
9 changed files with 79 additions and 101 deletions

View File

@@ -1,22 +1,21 @@
from typing import Callable, Optional, Type
from typing import Type
from fastapi import APIRouter, Depends, HTTPException, Request, status
from fastapi_users import models
from fastapi_users.manager import (
BaseUserManager,
InvalidPasswordException,
UserAlreadyExists,
BaseUserManager,
UserManagerDependency,
)
from fastapi_users.router.common import ErrorCode, run_handler
from fastapi_users.router.common import ErrorCode
def get_register_router(
get_user_manager: UserManagerDependency[models.UC, models.UD],
user_model: Type[models.U],
user_create_model: Type[models.UC],
after_register: Optional[Callable[[models.UD, Request], None]] = None,
) -> APIRouter:
"""Generate a router with the register route."""
router = APIRouter()
@@ -30,7 +29,7 @@ def get_register_router(
user_manager: BaseUserManager[models.UC, models.UD] = Depends(get_user_manager),
):
try:
created_user = await user_manager.create(user, safe=True)
created_user = await user_manager.create(user, safe=True, request=request)
except UserAlreadyExists:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
@@ -45,9 +44,6 @@ def get_register_router(
},
)
if after_register:
await run_handler(after_register, created_user, request)
return created_user
return router

View File

@@ -7,8 +7,8 @@ from pydantic import UUID4, EmailStr
from fastapi_users import models
from fastapi_users.jwt import SecretType, decode_jwt, generate_jwt
from fastapi_users.manager import (
InvalidPasswordException,
BaseUserManager,
InvalidPasswordException,
UserManagerDependency,
UserNotExists,
)

View File

@@ -6,9 +6,9 @@ from pydantic import UUID4
from fastapi_users import models
from fastapi_users.authentication import Authenticator
from fastapi_users.manager import (
BaseUserManager,
InvalidPasswordException,
UserAlreadyExists,
BaseUserManager,
UserManagerDependency,
UserNotExists,
)

View File

@@ -7,8 +7,8 @@ from pydantic import UUID4, EmailStr
from fastapi_users import models
from fastapi_users.jwt import SecretType, decode_jwt, generate_jwt
from fastapi_users.manager import (
UserAlreadyVerified,
BaseUserManager,
UserAlreadyVerified,
UserManagerDependency,
UserNotExists,
)