From 56be78ee0bfa2850b7f8e4ff51db685bc56a0a02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89lie=20Bouttier?= Date: Wed, 6 Jul 2016 01:32:31 +0200 Subject: [PATCH] superuser are automatically orga --- accounts/models.py | 5 ++++- accounts/utils.py | 2 +- proposals/tests.py | 5 +++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/accounts/models.py b/accounts/models.py index df5cba5..1afa6f9 100644 --- a/accounts/models.py +++ b/accounts/models.py @@ -57,5 +57,8 @@ class Participation(PonyConfModel): def get_absolute_url(self): return reverse('show-speaker', kwargs={'username': self.user.username}) + def is_orga(self): + return self.user.is_superuser or self.orga + def is_staff(self): - return self.user.is_superuser or self.orga or self.topic_set.exists() + return self.is_orga() or self.topic_set.exists() diff --git a/accounts/utils.py b/accounts/utils.py index 57f41ee..7f0a8c3 100644 --- a/accounts/utils.py +++ b/accounts/utils.py @@ -7,7 +7,7 @@ def generate_user_uid(): def is_orga(request, user): - return user.is_authenticated() and user.participation_set.get(site=get_current_site(request)).orga + return user.is_authenticated() and user.participation_set.get(site=get_current_site(request)).is_orga() def is_staff(request, user): diff --git a/proposals/tests.py b/proposals/tests.py index f66bf01..33ebc82 100644 --- a/proposals/tests.py +++ b/proposals/tests.py @@ -65,8 +65,9 @@ class ProposalsTests(TestCase): self.assertFalse(talk.is_moderable_by(b)) # Only orga can edit topics - self.client.login(username='c', password='c') + self.client.login(username='b', password='b') + self.assertFalse(Participation.on_site.get(user=b).orga) self.assertEqual(self.client.get(reverse('edit-topic', kwargs={'slug': 'topipo'})).status_code, 302) - Participation.on_site.filter(user=c).update(orga=True) + Participation.on_site.filter(user=b).update(orga=True) self.assertEqual(self.client.get(reverse('edit-topic', kwargs={'slug': 'topipo'})).status_code, 200) self.assertEqual(self.client.get(reverse('list-topics')).status_code, 200)