8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-11-27 07:02:26 +00:00

Propriefie les tests de droits

This commit is contained in:
Gabriel Detraz 2017-05-27 15:12:21 +02:00 committed by root
parent f700d59e65
commit 3d0b4ca6dc
2 changed files with 34 additions and 5 deletions

View file

@ -27,13 +27,18 @@ def context_user(request):
user = request.user user = request.user
if user.is_authenticated(): if user.is_authenticated():
interfaces = user.user_interfaces() interfaces = user.user_interfaces()
is_cableur = user.is_cableur
is_bureau = user.is_bureau
is_bofh = user.is_bofh
is_trez = user.is_trez
is_infra = user.is_infra
else: else:
interfaces = None interfaces = None
is_cableur = user.has_perms(('cableur',)) is_cableur = False
is_bureau = user.has_perms(('bureau',)) is_bureau = False
is_bofh = user.has_perms(('bofh',)) is_bofh = False
is_trez = user.has_perms(('trésorier',)) is_trez = False
is_infra = user.has_perms(('infra',)) is_infra = False
return { return {
'request_user': user, 'request_user': user,
'is_cableur': is_cableur, 'is_cableur': is_cableur,

View file

@ -216,6 +216,30 @@ class User(AbstractBaseUser):
def has_perm(self, perm, obj=None): def has_perm(self, perm, obj=None):
return True return True
def has_right(self, right):
return Right.objects.filter(user=self).filter(right=ListRight.objects.get(listright=right)).exists()
@cached_property
def is_bureau(self):
return Right.objects.filter(user=self).filter(right=ListRight.objects.get(listright='bureau')).exists()
@cached_property
def is_bofh(self):
return Right.objects.filter(user=self).filter(right=ListRight.objects.get(listright='bofh')).exists()
@cached_property
def is_cableur(self):
return self.has_right('cableur') or self.has_right('bureau') or self.has_right('infra') or self.has_right('bofh')
@cached_property
def is_trez(self):
return Right.objects.filter(user=self).filter(right=ListRight.objects.get(listright='trésorier')).exists()
@cached_property
def is_infra(self):
return Right.objects.filter(user=self).filter(right=ListRight.objects.get(listright='infra')).exists()
@cached_property @cached_property
def end_adhesion(self): def end_adhesion(self):
date_max = Cotisation.objects.filter(vente__in=Vente.objects.filter(facture__in=Facture.objects.filter(user=self).exclude(valid=False))).aggregate(models.Max('date_end'))['date_end__max'] date_max = Cotisation.objects.filter(vente__in=Vente.objects.filter(facture__in=Facture.objects.filter(user=self).exclude(valid=False))).aggregate(models.Max('date_end'))['date_end__max']