From 3dd52c1294c993d3b1adbb95517bb1357ea690d4 Mon Sep 17 00:00:00 2001 From: 0xAaron Date: Wed, 11 Oct 2023 14:09:43 -0700 Subject: [PATCH] Pass context to serializer and bump version. --- drfpasswordless/__init__.py | 4 ++-- drfpasswordless/__version__.py | 2 +- drfpasswordless/views.py | 38 +++++++++++++++++----------------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/drfpasswordless/__init__.py b/drfpasswordless/__init__.py index 8beef42..f1cbbd6 100644 --- a/drfpasswordless/__init__.py +++ b/drfpasswordless/__init__.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- __title__ = 'drfpasswordless' -__version__ = '1.5.8' +__version__ = '1.5.9' __author__ = 'Aaron Ng' __license__ = 'MIT' -__copyright__ = 'Copyright 2022 Aaron Ng' +__copyright__ = 'Copyright 2023 Aaron Ng' # Version synonym VERSION = __version__ diff --git a/drfpasswordless/__version__.py b/drfpasswordless/__version__.py index 8efe3d1..147d0ba 100644 --- a/drfpasswordless/__version__.py +++ b/drfpasswordless/__version__.py @@ -1,3 +1,3 @@ -VERSION = (1, 5, 8) +VERSION = (1, 5, 9) __version__ = '.'.join(map(str, VERSION)) diff --git a/drfpasswordless/views.py b/drfpasswordless/views.py index 6692ac8..16c9df5 100644 --- a/drfpasswordless/views.py +++ b/drfpasswordless/views.py @@ -62,7 +62,7 @@ def post(self, request, *args, **kwargs): else: status_code = status.HTTP_400_BAD_REQUEST response_detail = self.failure_response - return Response({'detail': response_detail}, status=status_code) + return Response({"detail": response_detail}, status=status_code) else: return Response(serializer.error_messages, status=status.HTTP_400_BAD_REQUEST) @@ -73,15 +73,15 @@ class ObtainEmailCallbackToken(AbstractBaseObtainCallbackToken): success_response = "A login token has been sent to your email." failure_response = "Unable to email you a login code. Try again later." - alias_type = 'email' + alias_type = "email" token_type = CallbackToken.TOKEN_TYPE_AUTH email_subject = api_settings.PASSWORDLESS_EMAIL_SUBJECT email_plaintext = api_settings.PASSWORDLESS_EMAIL_PLAINTEXT_MESSAGE email_html = api_settings.PASSWORDLESS_EMAIL_TOKEN_HTML_TEMPLATE_NAME - message_payload = {'email_subject': email_subject, - 'email_plaintext': email_plaintext, - 'email_html': email_html} + message_payload = {"email_subject": email_subject, + "email_plaintext": email_plaintext, + "email_html": email_html} class ObtainMobileCallbackToken(AbstractBaseObtainCallbackToken): @@ -90,11 +90,11 @@ class ObtainMobileCallbackToken(AbstractBaseObtainCallbackToken): success_response = "We texted you a login code." failure_response = "Unable to send you a login code. Try again later." - alias_type = 'mobile' + alias_type = "mobile" token_type = CallbackToken.TOKEN_TYPE_AUTH mobile_message = api_settings.PASSWORDLESS_MOBILE_MESSAGE - message_payload = {'mobile_message': mobile_message} + message_payload = {"mobile_message": mobile_message} class ObtainEmailVerificationCallbackToken(AbstractBaseObtainCallbackToken): @@ -103,16 +103,16 @@ class ObtainEmailVerificationCallbackToken(AbstractBaseObtainCallbackToken): success_response = "A verification token has been sent to your email." failure_response = "Unable to email you a verification code. Try again later." - alias_type = 'email' + alias_type = "email" token_type = CallbackToken.TOKEN_TYPE_VERIFY email_subject = api_settings.PASSWORDLESS_EMAIL_VERIFICATION_SUBJECT email_plaintext = api_settings.PASSWORDLESS_EMAIL_VERIFICATION_PLAINTEXT_MESSAGE email_html = api_settings.PASSWORDLESS_EMAIL_VERIFICATION_TOKEN_HTML_TEMPLATE_NAME message_payload = { - 'email_subject': email_subject, - 'email_plaintext': email_plaintext, - 'email_html': email_html + "email_subject": email_subject, + "email_plaintext": email_plaintext, + "email_html": email_html } @@ -122,11 +122,11 @@ class ObtainMobileVerificationCallbackToken(AbstractBaseObtainCallbackToken): success_response = "We texted you a verification code." failure_response = "Unable to send you a verification code. Try again later." - alias_type = 'mobile' + alias_type = "mobile" token_type = CallbackToken.TOKEN_TYPE_VERIFY mobile_message = api_settings.PASSWORDLESS_MOBILE_MESSAGE - message_payload = {'mobile_message': mobile_message} + message_payload = {"mobile_message": mobile_message} class AbstractBaseObtainAuthToken(APIView): @@ -139,19 +139,19 @@ class AbstractBaseObtainAuthToken(APIView): def post(self, request, *args, **kwargs): serializer = self.serializer_class(data=request.data) if serializer.is_valid(raise_exception=True): - user = serializer.validated_data['user'] + user = serializer.validated_data["user"] token_creator = import_string(api_settings.PASSWORDLESS_AUTH_TOKEN_CREATOR) (token, _) = token_creator(user) if token: TokenSerializer = import_string(api_settings.PASSWORDLESS_AUTH_TOKEN_SERIALIZER) - token_serializer = TokenSerializer(data=token.__dict__, partial=True) + token_serializer = TokenSerializer(data=token.__dict__, partial=True, context={"request": request}) if token_serializer.is_valid(): # Return our key for consumption. return Response(token_serializer.data, status=status.HTTP_200_OK) else: logger.error("Couldn't log in unknown user. Errors on serializer: {}".format(serializer.error_messages)) - return Response({'detail': 'Couldn\'t log you in. Try again later.'}, status=status.HTTP_400_BAD_REQUEST) + return Response({"detail": "Couldn't log you in. Try again later."}, status=status.HTTP_400_BAD_REQUEST) class ObtainAuthTokenFromCallbackToken(AbstractBaseObtainAuthToken): @@ -171,10 +171,10 @@ class VerifyAliasFromCallbackToken(APIView): serializer_class = CallbackTokenVerificationSerializer def post(self, request, *args, **kwargs): - serializer = self.serializer_class(data=request.data, context={'user_id': self.request.user.id}) + serializer = self.serializer_class(data=request.data, context={"user_id": self.request.user.id}) if serializer.is_valid(raise_exception=True): - return Response({'detail': 'Alias verified.'}, status=status.HTTP_200_OK) + return Response({"detail": "Alias verified."}, status=status.HTTP_200_OK) else: logger.error("Couldn't verify unknown user. Errors on serializer: {}".format(serializer.error_messages)) - return Response({'detail': 'We couldn\'t verify this alias. Try again later.'}, status.HTTP_400_BAD_REQUEST) + return Response({"detail": "We couldn't verify this alias. Try again later."}, status.HTTP_400_BAD_REQUEST)