Les respos sont pris en compte dans les droits testés sur les attributs.

This commit is contained in:
Pierre-Elliott Bécue 2015-04-27 16:13:22 +02:00
parent bfc91573fb
commit 7fe89abfe6
2 changed files with 3 additions and 3 deletions

View file

@ -1298,7 +1298,7 @@ class imprimeurClub(Attr):
optional = True optional = True
legend = u"Imprimeur du club" legend = u"Imprimeur du club"
category = "perso" category = "perso"
can_modify = [cableur, nounou] can_modify = [cableur, imprimeur, nounou, respo]
ldap_name = "imprimeurClub" ldap_name = "imprimeurClub"
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):

View file

@ -654,7 +654,7 @@ class CransLdapObject(object):
# sert à permettre les vérifications de cardinalité # sert à permettre les vérifications de cardinalité
# (on peut pas utiliser self._modifs, car il ne faut # (on peut pas utiliser self._modifs, car il ne faut
# faire le changement que si on peut) # faire le changement que si on peut)
attrs_before_verif = [ attributs.attrify(val, attr, self.conn, Parent=self) for val in values ] attrs_before_verif = [attributs.attrify(val, attr, self.conn, Parent=self) for val in values]
# Methode de vérification diverse ayant pour but d'être surcharger # Methode de vérification diverse ayant pour but d'être surcharger
# par les classes enfants. Ainsi, elle ne touche pas à __setitem__ # par les classes enfants. Ainsi, elle ne touche pas à __setitem__
@ -670,7 +670,7 @@ class CransLdapObject(object):
# vide avant, puis on en a une nouvelle après. # vide avant, puis on en a une nouvelle après.
if mixed_attrs: if mixed_attrs:
# Tests de droits. # Tests de droits.
if not mixed_attrs[0].is_modifiable(self.conn.droits + self.conn._check_parent(self.dn) + self.conn._check_self(self.dn)): if not mixed_attrs[0].is_modifiable(self.conn.droits + self.conn._check_parent(self.dn) + self.conn._check_self(self.dn) + self.conn._check_respo(self.dn)):
raise EnvironmentError("Vous ne pouvez pas modifier l'attribut %r de l'objet %r." % (attr, self)) raise EnvironmentError("Vous ne pouvez pas modifier l'attribut %r de l'objet %r." % (attr, self))
# On ajoute des locks sur les nouvelles valeurs # On ajoute des locks sur les nouvelles valeurs