mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-27 07:02:26 +00:00
Ajoute un message d'erreur si can_xxx renvoie False
This commit is contained in:
parent
0d78dcadf5
commit
7d8b61f0c9
2 changed files with 36 additions and 17 deletions
|
@ -58,8 +58,9 @@ def can_create(model):
|
|||
"""
|
||||
def decorator(view):
|
||||
def wrapper(request,*args, **kwargs):
|
||||
if not model.can_create(request.user):
|
||||
messages.error(request, "Vous ne pouvez pas accéder à ce menu")
|
||||
can, msg = model.can_create(request.user)
|
||||
if not can:
|
||||
messages.error(request, msg or "Vous ne pouvez pas accéder à ce menu")
|
||||
return redirect(reverse('users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
|
@ -84,8 +85,9 @@ def can_edit(model):
|
|||
return redirect(reverse('users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
if not model.can_edit(instance, request.user):
|
||||
messages.error(request, "Vous ne pouvez pas accéder à ce menu")
|
||||
can, msg = model.can_edit(instance, request.user)
|
||||
if not can:
|
||||
messages.error(request, msg or "Vous ne pouvez pas accéder à ce menu")
|
||||
return redirect(reverse('users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
|
|
|
@ -765,24 +765,37 @@ class User(AbstractBaseUser):
|
|||
def can_create(user):
|
||||
options, _created = OptionalUser.objects.get_or_create()
|
||||
if options.all_can_create:
|
||||
return True
|
||||
return True, None
|
||||
else:
|
||||
return user.has_perms(('cableur',))
|
||||
return user.has_perms(('cableur',)), u"Vous n'avez pas le\
|
||||
droit de créer un utilisateur"
|
||||
|
||||
def can_edit(self, user):
|
||||
if self.is_class_club and user.is_class_adherent:
|
||||
return self == user or user.has_perms(('cableur',)) or\
|
||||
user.adherent in self.club.administrators.all()
|
||||
if self == user or user.has_perms(('cableur',)) or\
|
||||
user.adherent in self.club.administrators.all():
|
||||
return True, None
|
||||
else:
|
||||
return self == user or user.has_perms(('cableur',))
|
||||
return False, u"Vous n'avez pas le droit d'éditer ce club"
|
||||
else:
|
||||
if self == user or user.has_perms(('cableur',)):
|
||||
return True, None
|
||||
else:
|
||||
return False, u"Vous ne pouvez éditer un autre utilisateur que vous même"
|
||||
|
||||
def can_view(self, user):
|
||||
if self.is_class_club and user.is_class_adherent:
|
||||
return self == user or user.has_perms(('cableur',)) or\
|
||||
if self == user or user.has_perms(('cableur',)) or\
|
||||
user.adherent in self.club.administrators.all() or\
|
||||
user.adherent in self.club.members.all()
|
||||
user.adherent in self.club.members.all():
|
||||
return True, None
|
||||
else:
|
||||
return self == user or user.has_perms(('cableur',))
|
||||
return False, u"Vous n'avez pas le droit de voir ce club"
|
||||
else:
|
||||
if self == user or user.has_perms(('cableur',)):
|
||||
return True, None
|
||||
else:
|
||||
return False, u"Vous ne pouvez voir un autre utilisateur que vous même"
|
||||
|
||||
def get_instance(userid):
|
||||
return User.objects.get(pk=userid)
|
||||
|
@ -917,12 +930,14 @@ class ServiceUser(AbstractBaseUser):
|
|||
def can_create(user):
|
||||
options, _created = OptionalUser.objects.get_or_create()
|
||||
if options.all_can_create:
|
||||
return True
|
||||
return True, None
|
||||
else:
|
||||
return user.has_perms(('infra',))
|
||||
return user.has_perms(('infra',)), u"Vous n'avez pas le droit de\
|
||||
créer un service user"
|
||||
|
||||
def can_edit(instance, user):
|
||||
return user.has_perms(('infra',))
|
||||
return user.has_perms(('infra',)), u"Vous n'avez pas le droit d'éditer\
|
||||
les services users"
|
||||
|
||||
def get_instance(userid):
|
||||
return ServiceUser.objects.get(pk=userid)
|
||||
|
@ -957,7 +972,8 @@ class Right(models.Model):
|
|||
return str(self.user)
|
||||
|
||||
def can_create(user):
|
||||
return user.has_perms('bureau')
|
||||
return user.has_perms('bureau'), u"Vous n'avez pas le droit de\
|
||||
créer des droits"
|
||||
|
||||
|
||||
@receiver(post_save, sender=Right)
|
||||
|
@ -1104,7 +1120,8 @@ class Ban(models.Model):
|
|||
return str(self.user) + ' ' + str(self.raison)
|
||||
|
||||
def can_create(user):
|
||||
return user.has_perms(('bofh',))
|
||||
return user.has_perms(('bofh',)), u"Vous n'avez pas le droit de\
|
||||
créer des bannissement"
|
||||
|
||||
|
||||
@receiver(post_save, sender=Ban)
|
||||
|
|
Loading…
Reference in a new issue