Add login_return to on_after_login method (#1187)

This commit is contained in:
Téva KRIEF
2023-04-14 16:10:22 +02:00
committed by GitHub
parent bcae3e53ba
commit 4e426d6823
5 changed files with 12 additions and 4 deletions

View File

@ -187,6 +187,7 @@ class UserManager(UUIDIDMixin, BaseUserManager[User, uuid.UUID]):
self, self,
user: User, user: User,
request: Optional[Request] = None, request: Optional[Request] = None,
login_return: Optional[Any] = None,
): ):
print(f"User {user.id} logged in.") print(f"User {user.id} logged in.")
``` ```

View File

@ -586,7 +586,10 @@ class BaseUserManager(Generic[models.UP, models.ID]):
return # pragma: no cover return # pragma: no cover
async def on_after_login( async def on_after_login(
self, user: models.UP, request: Optional[Request] = None self,
user: models.UP,
request: Optional[Request] = None,
login_return: Optional[Any] = None,
) -> None: ) -> None:
""" """
Perform logic after user login. Perform logic after user login.
@ -594,7 +597,8 @@ class BaseUserManager(Generic[models.UP, models.ID]):
*You should overload this method to add your own logic.* *You should overload this method to add your own logic.*
:param user: The user that is logging in :param user: The user that is logging in
:param request: Optional FastAPI request that :param request: Optional FastAPI request
:param login_return: Optional return of the login
triggered the operation, defaults to None. triggered the operation, defaults to None.
""" """
return # pragma: no cover return # pragma: no cover

View File

@ -68,7 +68,7 @@ def get_auth_router(
detail=ErrorCode.LOGIN_USER_NOT_VERIFIED, detail=ErrorCode.LOGIN_USER_NOT_VERIFIED,
) )
login_return = await backend.login(strategy, user, response) login_return = await backend.login(strategy, user, response)
await user_manager.on_after_login(user, request) await user_manager.on_after_login(user, request, login_return)
return login_return return login_return
logout_responses: OpenAPIResponseType = { logout_responses: OpenAPIResponseType = {

View File

@ -149,7 +149,7 @@ def get_oauth_router(
# Authenticate # Authenticate
login_return = await backend.login(strategy, user, response) login_return = await backend.login(strategy, user, response)
await user_manager.on_after_login(user, request) await user_manager.on_after_login(user, request, login_return)
return login_return return login_return
return router return router

View File

@ -165,6 +165,9 @@ class TestLogin:
"token_type": "bearer", "token_type": "bearer",
} }
assert user_manager.on_after_login.called is True assert user_manager.on_after_login.called is True
args, kwargs = user_manager.on_after_login.call_args
assert len(args) == 3
assert all(x is not None for x in args)
async def test_inactive_user( async def test_inactive_user(
self, self,