From 3498f237a0fc694d6707ce7ba3207d2dcd287645 Mon Sep 17 00:00:00 2001 From: Erwan Rouchet <rouchet@teklia.com> Date: Mon, 2 Jul 2018 13:42:08 +0000 Subject: [PATCH] Create token on user creation --- arkindex/users/__init__.py | 1 + arkindex/users/apps.py | 5 ++++- arkindex/users/signals.py | 10 ++++++++++ arkindex/users/tests.py | 7 +++++++ 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 arkindex/users/signals.py diff --git a/arkindex/users/__init__.py b/arkindex/users/__init__.py index e69de29bb2..1cfa95c54f 100644 --- a/arkindex/users/__init__.py +++ b/arkindex/users/__init__.py @@ -0,0 +1 @@ +default_app_config = 'arkindex.users.apps.UsersConfig' diff --git a/arkindex/users/apps.py b/arkindex/users/apps.py index 4ce1fabc03..04be7d4322 100644 --- a/arkindex/users/apps.py +++ b/arkindex/users/apps.py @@ -2,4 +2,7 @@ from django.apps import AppConfig class UsersConfig(AppConfig): - name = 'users' + name = 'arkindex.users' + + def ready(self): + from arkindex.users import signals # noqa diff --git a/arkindex/users/signals.py b/arkindex/users/signals.py new file mode 100644 index 0000000000..b484a7c979 --- /dev/null +++ b/arkindex/users/signals.py @@ -0,0 +1,10 @@ +from django.conf import settings +from django.db.models.signals import post_save +from django.dispatch import receiver +from rest_framework.authtoken.models import Token + + +@receiver(post_save, sender=settings.AUTH_USER_MODEL) +def create_auth_token(sender, instance=None, created=False, **kwargs): + if created: + Token.objects.create(user=instance) diff --git a/arkindex/users/tests.py b/arkindex/users/tests.py index 71f77aebdf..7853150a75 100644 --- a/arkindex/users/tests.py +++ b/arkindex/users/tests.py @@ -3,6 +3,7 @@ from django.urls import reverse from django.core import mail from django.contrib import auth from arkindex.users.models import User +from rest_framework.authtoken.models import Token class TestUsers(TestCase): @@ -41,3 +42,9 @@ class TestUsers(TestCase): self.assertListEqual(response.redirect_chain, [(reverse('password_reset_done'), 302)]) self.assertEqual(len(mail.outbox), 1) self.assertEqual(mail.outbox[0].to, ['email@address.com']) + + def test_auto_token(self): + """ + Check creating a user automatically creates a token + """ + self.assertEqual(Token.objects.filter(user=self.user).count(), 1) -- GitLab