mirror of
https://github.com/fastapi-users/fastapi-users.git
synced 2025-11-01 01:48:46 +08:00
Implement on_after_update event handle
This commit is contained in:
@ -78,6 +78,10 @@ class FastAPIUsers:
|
||||
"""Add an event handler on successful forgot password request."""
|
||||
return self._on_event(Event.ON_AFTER_FORGOT_PASSWORD)
|
||||
|
||||
def on_after_update(self) -> Callable:
|
||||
"""Add an event handler on successful update user request."""
|
||||
return self._on_event(Event.ON_AFTER_UPDATE)
|
||||
|
||||
def get_oauth_router(
|
||||
self, oauth_client: BaseOAuth2, state_secret: str, redirect_url: str = None
|
||||
) -> EventHandlersRouter:
|
||||
|
||||
@ -15,6 +15,7 @@ class ErrorCode:
|
||||
class Event(Enum):
|
||||
ON_AFTER_REGISTER = auto()
|
||||
ON_AFTER_FORGOT_PASSWORD = auto()
|
||||
ON_AFTER_UPDATE = auto()
|
||||
|
||||
|
||||
class EventHandlersRouter(APIRouter):
|
||||
|
||||
@ -169,6 +169,7 @@ def get_user_router(
|
||||
|
||||
@router.patch("/me", response_model=user_model)
|
||||
async def update_me(
|
||||
request: Request,
|
||||
updated_user: user_update_model, # type: ignore
|
||||
user: user_db_model = Depends(get_current_active_user), # type: ignore
|
||||
):
|
||||
@ -176,7 +177,13 @@ def get_user_router(
|
||||
models.BaseUserUpdate, updated_user,
|
||||
) # Prevent mypy complain
|
||||
updated_user_data = updated_user.create_update_dict()
|
||||
return await _update_user(user, updated_user_data)
|
||||
updated_user = await _update_user(user, updated_user_data)
|
||||
|
||||
await router.run_handlers(
|
||||
Event.ON_AFTER_UPDATE, updated_user, updated_user_data, request
|
||||
)
|
||||
|
||||
return updated_user
|
||||
|
||||
@router.get(
|
||||
"/",
|
||||
|
||||
Reference in New Issue
Block a user