diff --git a/accounts/signals.py b/accounts/signals.py index def12ab..6d7cca9 100644 --- a/accounts/signals.py +++ b/accounts/signals.py @@ -20,7 +20,10 @@ def create_default_options(sender, **kwargs): @receiver(user_logged_in) def on_user_logged_in(sender, request, user, **kwargs): - proposition, created = Participation.objects.get_or_create(user=user, site=get_current_site(request)) + participation, created = Participation.objects.get_or_create(user=user, site=get_current_site(request)) + if user.is_superuser: + participation.orga = True + participation.save() if created: messages.info(request, "Please check your profile!\n", fail_silently=True) # FIXME messages.success(request, 'Welcome!', fail_silently=True) # FIXME diff --git a/accounts/tests.py b/accounts/tests.py index 226d648..cc48f76 100644 --- a/accounts/tests.py +++ b/accounts/tests.py @@ -53,11 +53,13 @@ class AccountTests(TestCase): b = User.objects.get(username='b') b.is_superuser = True b.save() + p = Participation.objects.get(user=b) + self.assertFalse(p.orga) self.assertEqual(self.client.get(reverse('list-participant')).status_code, 200) - b = Participation.objects.get(user=b) - b.is_superuser = False - b.orga = True - b.save() + # login signal should set orga to True due to superuser status + self.client.login(username='b', password='b') + p = Participation.objects.get(user=b) + self.assertTrue(p.orga) self.assertEqual(self.client.post(reverse('edit-participant', kwargs={'username': 'a'}), {'biography': 'foo', 'nootes': 'bar'}).status_code, 200) self.assertEqual(User.objects.get(username='a').profile.biography, '')