mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-12-25 16:33:47 +00:00
Propriefie les tests de droits
This commit is contained in:
parent
f700d59e65
commit
3d0b4ca6dc
2 changed files with 34 additions and 5 deletions
|
@ -27,13 +27,18 @@ def context_user(request):
|
|||
user = request.user
|
||||
if user.is_authenticated():
|
||||
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:
|
||||
interfaces = None
|
||||
is_cableur = user.has_perms(('cableur',))
|
||||
is_bureau = user.has_perms(('bureau',))
|
||||
is_bofh = user.has_perms(('bofh',))
|
||||
is_trez = user.has_perms(('trésorier',))
|
||||
is_infra = user.has_perms(('infra',))
|
||||
is_cableur = False
|
||||
is_bureau = False
|
||||
is_bofh = False
|
||||
is_trez = False
|
||||
is_infra = False
|
||||
return {
|
||||
'request_user': user,
|
||||
'is_cableur': is_cableur,
|
||||
|
|
|
@ -216,6 +216,30 @@ class User(AbstractBaseUser):
|
|||
def has_perm(self, perm, obj=None):
|
||||
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
|
||||
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']
|
||||
|
|
Loading…
Reference in a new issue