Skip to content

Commit 2604dfb

Browse files
authored
Merge pull request #133 from aaronn/improvement/pass-serializer-context
Pass context to serializer and bump version.
2 parents 36592ea + 9e237e2 commit 2604dfb

File tree

4 files changed

+23
-23
lines changed

4 files changed

+23
-23
lines changed

.github/workflows/runtests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
runs-on: ubuntu-latest
99
strategy:
1010
matrix:
11-
python: [3.6, 3.7]
11+
python: [3.7, 3.8]
1212

1313
steps:
1414
- uses: actions/checkout@v1

drfpasswordless/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# -*- coding: utf-8 -*-
22

33
__title__ = 'drfpasswordless'
4-
__version__ = '1.5.8'
4+
__version__ = '1.5.9'
55
__author__ = 'Aaron Ng'
66
__license__ = 'MIT'
7-
__copyright__ = 'Copyright 2022 Aaron Ng'
7+
__copyright__ = 'Copyright 2023 Aaron Ng'
88

99
# Version synonym
1010
VERSION = __version__

drfpasswordless/__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
VERSION = (1, 5, 8)
1+
VERSION = (1, 5, 9)
22

33
__version__ = '.'.join(map(str, VERSION))

drfpasswordless/views.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def post(self, request, *args, **kwargs):
6262
else:
6363
status_code = status.HTTP_400_BAD_REQUEST
6464
response_detail = self.failure_response
65-
return Response({'detail': response_detail}, status=status_code)
65+
return Response({"detail": response_detail}, status=status_code)
6666
else:
6767
return Response(serializer.error_messages, status=status.HTTP_400_BAD_REQUEST)
6868

@@ -73,15 +73,15 @@ class ObtainEmailCallbackToken(AbstractBaseObtainCallbackToken):
7373
success_response = "A login token has been sent to your email."
7474
failure_response = "Unable to email you a login code. Try again later."
7575

76-
alias_type = 'email'
76+
alias_type = "email"
7777
token_type = CallbackToken.TOKEN_TYPE_AUTH
7878

7979
email_subject = api_settings.PASSWORDLESS_EMAIL_SUBJECT
8080
email_plaintext = api_settings.PASSWORDLESS_EMAIL_PLAINTEXT_MESSAGE
8181
email_html = api_settings.PASSWORDLESS_EMAIL_TOKEN_HTML_TEMPLATE_NAME
82-
message_payload = {'email_subject': email_subject,
83-
'email_plaintext': email_plaintext,
84-
'email_html': email_html}
82+
message_payload = {"email_subject": email_subject,
83+
"email_plaintext": email_plaintext,
84+
"email_html": email_html}
8585

8686

8787
class ObtainMobileCallbackToken(AbstractBaseObtainCallbackToken):
@@ -90,11 +90,11 @@ class ObtainMobileCallbackToken(AbstractBaseObtainCallbackToken):
9090
success_response = "We texted you a login code."
9191
failure_response = "Unable to send you a login code. Try again later."
9292

93-
alias_type = 'mobile'
93+
alias_type = "mobile"
9494
token_type = CallbackToken.TOKEN_TYPE_AUTH
9595

9696
mobile_message = api_settings.PASSWORDLESS_MOBILE_MESSAGE
97-
message_payload = {'mobile_message': mobile_message}
97+
message_payload = {"mobile_message": mobile_message}
9898

9999

100100
class ObtainEmailVerificationCallbackToken(AbstractBaseObtainCallbackToken):
@@ -103,16 +103,16 @@ class ObtainEmailVerificationCallbackToken(AbstractBaseObtainCallbackToken):
103103
success_response = "A verification token has been sent to your email."
104104
failure_response = "Unable to email you a verification code. Try again later."
105105

106-
alias_type = 'email'
106+
alias_type = "email"
107107
token_type = CallbackToken.TOKEN_TYPE_VERIFY
108108

109109
email_subject = api_settings.PASSWORDLESS_EMAIL_VERIFICATION_SUBJECT
110110
email_plaintext = api_settings.PASSWORDLESS_EMAIL_VERIFICATION_PLAINTEXT_MESSAGE
111111
email_html = api_settings.PASSWORDLESS_EMAIL_VERIFICATION_TOKEN_HTML_TEMPLATE_NAME
112112
message_payload = {
113-
'email_subject': email_subject,
114-
'email_plaintext': email_plaintext,
115-
'email_html': email_html
113+
"email_subject": email_subject,
114+
"email_plaintext": email_plaintext,
115+
"email_html": email_html
116116
}
117117

118118

@@ -122,11 +122,11 @@ class ObtainMobileVerificationCallbackToken(AbstractBaseObtainCallbackToken):
122122
success_response = "We texted you a verification code."
123123
failure_response = "Unable to send you a verification code. Try again later."
124124

125-
alias_type = 'mobile'
125+
alias_type = "mobile"
126126
token_type = CallbackToken.TOKEN_TYPE_VERIFY
127127

128128
mobile_message = api_settings.PASSWORDLESS_MOBILE_MESSAGE
129-
message_payload = {'mobile_message': mobile_message}
129+
message_payload = {"mobile_message": mobile_message}
130130

131131

132132
class AbstractBaseObtainAuthToken(APIView):
@@ -139,19 +139,19 @@ class AbstractBaseObtainAuthToken(APIView):
139139
def post(self, request, *args, **kwargs):
140140
serializer = self.serializer_class(data=request.data)
141141
if serializer.is_valid(raise_exception=True):
142-
user = serializer.validated_data['user']
142+
user = serializer.validated_data["user"]
143143
token_creator = import_string(api_settings.PASSWORDLESS_AUTH_TOKEN_CREATOR)
144144
(token, _) = token_creator(user)
145145

146146
if token:
147147
TokenSerializer = import_string(api_settings.PASSWORDLESS_AUTH_TOKEN_SERIALIZER)
148-
token_serializer = TokenSerializer(data=token.__dict__, partial=True)
148+
token_serializer = TokenSerializer(data=token.__dict__, partial=True, context={"request": request})
149149
if token_serializer.is_valid():
150150
# Return our key for consumption.
151151
return Response(token_serializer.data, status=status.HTTP_200_OK)
152152
else:
153153
logger.error("Couldn't log in unknown user. Errors on serializer: {}".format(serializer.error_messages))
154-
return Response({'detail': 'Couldn\'t log you in. Try again later.'}, status=status.HTTP_400_BAD_REQUEST)
154+
return Response({"detail": "Couldn't log you in. Try again later."}, status=status.HTTP_400_BAD_REQUEST)
155155

156156

157157
class ObtainAuthTokenFromCallbackToken(AbstractBaseObtainAuthToken):
@@ -171,10 +171,10 @@ class VerifyAliasFromCallbackToken(APIView):
171171
serializer_class = CallbackTokenVerificationSerializer
172172

173173
def post(self, request, *args, **kwargs):
174-
serializer = self.serializer_class(data=request.data, context={'user_id': self.request.user.id})
174+
serializer = self.serializer_class(data=request.data, context={"user_id": self.request.user.id})
175175
if serializer.is_valid(raise_exception=True):
176-
return Response({'detail': 'Alias verified.'}, status=status.HTTP_200_OK)
176+
return Response({"detail": "Alias verified."}, status=status.HTTP_200_OK)
177177
else:
178178
logger.error("Couldn't verify unknown user. Errors on serializer: {}".format(serializer.error_messages))
179179

180-
return Response({'detail': 'We couldn\'t verify this alias. Try again later.'}, status.HTTP_400_BAD_REQUEST)
180+
return Response({"detail": "We couldn't verify this alias. Try again later."}, status.HTTP_400_BAD_REQUEST)

0 commit comments

Comments
 (0)