diff --git a/club/templates/club/club_list.jinja b/club/templates/club/club_list.jinja
index 4c880558..fe6ee701 100644
--- a/club/templates/club/club_list.jinja
+++ b/club/templates/club/club_list.jinja
@@ -17,7 +17,7 @@
{%- endmacro %}
{% block content %}
- {% if user.is_superuser or user.is_in_group(settings.SITH_GROUPS['root']['name']) %}
+ {% if user.is_root %}
{% trans %}New club{% endtrans %}
{% endif %}
{% if club_list %}
diff --git a/core/models.py b/core/models.py
index 00cc44d1..62c3a3d5 100644
--- a/core/models.py
+++ b/core/models.py
@@ -223,6 +223,7 @@ class User(AbstractBaseUser):
return True
return self.groups.filter(name=group_name).exists()
+ @property
def is_root(self):
return self.is_superuser or self.groups.filter(name=settings.SITH_GROUPS['root']['name']).exists()
@@ -348,7 +349,7 @@ class User(AbstractBaseUser):
return False
def can_be_edited_by(self, user):
- return user.is_in_group(settings.SITH_MAIN_BOARD_GROUP) or user.is_in_group(settings.SITH_GROUPS['root']['name'])
+ return user.is_in_group(settings.SITH_MAIN_BOARD_GROUP) or user.is_root
class AnonymousUser(AuthAnonymousUser):
diff --git a/core/templates/core/user_base.jinja b/core/templates/core/user_base.jinja
index d6e3a356..26f11720 100644
--- a/core/templates/core/user_base.jinja
+++ b/core/templates/core/user_base.jinja
@@ -13,7 +13,7 @@
{% endif %}
{% if profile.customer and (profile == request.user
or request.user.is_in_group(settings.SITH_GROUPS['accounting-admin']['name'])
- or request.user.is_in_group(settings.SITH_GROUPS['root']['name'])) %}
+ or request.user.is_root) %}
{% trans %}Account{% endtrans %}
{% endif %}
diff --git a/core/templates/core/user_tools.jinja b/core/templates/core/user_tools.jinja
index 2be117be..57c62800 100644
--- a/core/templates/core/user_tools.jinja
+++ b/core/templates/core/user_tools.jinja
@@ -10,10 +10,10 @@
{% trans %}Sith management{% endtrans %}
- {% if user.is_in_group(settings.SITH_GROUPS['root']['name']) %}
+ {% if user.is_root %}
- {% trans %}Groups{% endtrans %}
{% endif %}
- {% if user.is_in_group(settings.SITH_MAIN_BOARD_GROUP) or user.is_in_group(settings.SITH_GROUPS['root']['name']) %}
+ {% if user.is_in_group(settings.SITH_MAIN_BOARD_GROUP) or user.is_root %}
- {% trans %}Subscriptions{% endtrans %}
{% endif %}
@@ -21,7 +21,7 @@
{% trans %}Counters{% endtrans %}
- {% if user.is_in_group(settings.SITH_GROUPS['counter-admin']['name']) or user.is_in_group(settings.SITH_GROUPS['root']['name']) %}
+ {% if user.is_in_group(settings.SITH_GROUPS['counter-admin']['name']) or user.is_root %}
{% trans %}General management{% endtrans %}
- {% trans %}General counters management{% endtrans %}
- {% trans %}Products management{% endtrans %}
@@ -38,7 +38,7 @@
{% trans %}Accounting{% endtrans %}
- {% if user.is_in_group(settings.SITH_GROUPS['accounting-admin']['name']) or user.is_in_group(settings.SITH_GROUPS['root']['name']) %}
+ {% if user.is_in_group(settings.SITH_GROUPS['accounting-admin']['name']) or user.is_root %}
- {% trans %}General accounting{% endtrans %}
{% endif %}
{% for m in user.membership.filter(end_date=None).filter(role__gte=7).all() %}
diff --git a/core/views/user.py b/core/views/user.py
index 7bdff87c..3bff6535 100644
--- a/core/views/user.py
+++ b/core/views/user.py
@@ -46,7 +46,7 @@ def password_root_change(request, user_id):
"""
Allows a root user to change someone's password
"""
- if not request.user.is_superuser and not request.user.is_in_group(settings.SITH_GROUPS['root']['name']):
+ if not request.user.is_root:
raise PermissionDenied
user = User.objects.filter(id=user_id).first()
if not user:
@@ -196,7 +196,7 @@ class UserAccountView(DetailView):
res = super(UserAccountView, self).dispatch(request, *arg, **kwargs)
if (self.object == request.user
or request.user.is_in_group(settings.SITH_GROUPS['accounting-admin']['name'])
- or request.user.is_in_group(settings.SITH_GROUPS['root']['name'])):
+ or request.user.is_root):
return res
raise PermissionDenied
diff --git a/subscription/models.py b/subscription/models.py
index 1c46ec2a..034dae81 100644
--- a/subscription/models.py
+++ b/subscription/models.py
@@ -115,7 +115,7 @@ class Subscription(models.Model):
def can_be_edited_by(self, user):
- return user.is_in_group(settings.SITH_MAIN_BOARD_GROUP) or user.is_in_group(settings.SITH_GROUPS['root']['name'])
+ return user.is_in_group(settings.SITH_MAIN_BOARD_GROUP) or user.is_root
def is_valid_now(self):
return self.subscription_start <= date.today() and date.today() <= self.subscription_end