diff --git a/attributs.py b/attributs.py index 810c23a..098d1b2 100644 --- a/attributs.py +++ b/attributs.py @@ -1298,7 +1298,7 @@ class imprimeurClub(Attr): optional = True legend = u"Imprimeur du club" category = "perso" - can_modify = [cableur, nounou] + can_modify = [cableur, imprimeur, nounou, respo] ldap_name = "imprimeurClub" def __init__(self, *args, **kwargs): diff --git a/objets.py b/objets.py index 79b2167..c2c59f4 100644 --- a/objets.py +++ b/objets.py @@ -654,7 +654,7 @@ class CransLdapObject(object): # sert à permettre les vérifications de cardinalité # (on peut pas utiliser self._modifs, car il ne faut # 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 # 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. if mixed_attrs: # 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)) # On ajoute des locks sur les nouvelles valeurs