From 10f5379d3ed15fe7a55b034466e57e5af78a4f17 Mon Sep 17 00:00:00 2001 From: Curtis Maloney Date: Thu, 25 May 2023 12:32:37 +1000 Subject: [PATCH] [#215] Add hook to allow customising token challenge response --- trench/views/base.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/trench/views/base.py b/trench/views/base.py index cd896413..eca5824e 100644 --- a/trench/views/base.py +++ b/trench/views/base.py @@ -73,16 +73,22 @@ def post(self, request: Request) -> Response: try: mfa_model = get_mfa_model() mfa_method = mfa_model.objects.get_primary_active(user_id=user.id) - get_mfa_handler(mfa_method=mfa_method).dispatch_message() - return Response( + dispatch_response = get_mfa_handler(mfa_method=mfa_method).dispatch_message() + return self._token_response( data={ "ephemeral_token": user_token_generator.make_token(user), "method": mfa_method.name, - } + }, + method=mfa_method, + dispatch_response=dispatch_response, ) except MFAMethodDoesNotExistError: return self._successful_authentication_response(user=user) + def _token_response(self, data, method, dispatch_response: DispatchResponse) -> Response + '''Hook to permit customising response content''' + return Response(data) + class MFASecondStepMixin(MFAStepMixin, ABC): def post(self, request: Request) -> Response: