Skip to content

Commit 97dbb52

Browse files
committed
Merge pull request #153 from Tivix/pr/128
Return token only when verification is mandatory
2 parents f9547f6 + ae8a26b commit 97dbb52

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

rest_auth/registration/views.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,20 @@ class RegisterView(CreateAPIView):
2323
permission_classes = (AllowAny, )
2424
token_model = TokenModel
2525

26+
def get_response_data(self, user):
27+
if allauth_settings.EMAIL_VERIFICATION == \
28+
allauth_settings.EmailVerificationMethod.MANDATORY:
29+
return {}
30+
31+
return TokenSerializer(user.auth_token).data
32+
2633
def create(self, request, *args, **kwargs):
2734
serializer = self.get_serializer(data=request.data)
2835
serializer.is_valid(raise_exception=True)
2936
user = self.perform_create(serializer)
3037
headers = self.get_success_headers(serializer.data)
31-
return Response(TokenSerializer(user.auth_token).data,
32-
status=status.HTTP_201_CREATED,
33-
headers=headers)
38+
39+
return Response(self.get_response_data(user), status=status.HTTP_201_CREATED, headers=headers)
3440

3541
def perform_create(self, serializer):
3642
user = serializer.save(self.request)

rest_auth/tests/test_api.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,8 +310,10 @@ def test_registration(self):
310310
# test empty payload
311311
self.post(self.register_url, data={}, status_code=400)
312312

313-
self.post(self.register_url, data=self.REGISTRATION_DATA, status_code=201)
313+
result = self.post(self.register_url, data=self.REGISTRATION_DATA, status_code=201)
314+
self.assertIn('key', result.data)
314315
self.assertEqual(get_user_model().objects.all().count(), user_count + 1)
316+
315317
new_user = get_user_model().objects.latest('id')
316318
self.assertEqual(new_user.username, self.REGISTRATION_DATA['username'])
317319

@@ -339,11 +341,12 @@ def test_registration_with_email_verification(self):
339341
status_code=status.HTTP_400_BAD_REQUEST
340342
)
341343

342-
self.post(
344+
result = self.post(
343345
self.register_url,
344346
data=self.REGISTRATION_DATA_WITH_EMAIL,
345347
status_code=status.HTTP_201_CREATED
346348
)
349+
self.assertNotIn('key', result.data)
347350
self.assertEqual(get_user_model().objects.all().count(), user_count + 1)
348351
self.assertEqual(len(mail.outbox), mail_count + 1)
349352
new_user = get_user_model().objects.latest('id')

0 commit comments

Comments
 (0)