[objets.setitem] Varification de l'unicité de l'attribut sur l'objet
Sinon ldap il est pas content
This commit is contained in:
parent
8fd2be80c8
commit
06ea17715b
1 changed files with 18 additions and 10 deletions
22
objets.py
22
objets.py
|
@ -501,17 +501,25 @@ class CransLdapObject(object):
|
|||
# (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 ]
|
||||
|
||||
# Methode de vérification diverse ayant pour but d'être surcharger
|
||||
# par les classes enfants. Ainsi, elle ne touche pas à __setitem__
|
||||
# qui est assez sensible.
|
||||
self._check_setitem(attr, attrs_before_verif)
|
||||
if attr in self.attrs.keys():
|
||||
|
||||
# Vérification que (attr, value) est localement unique et
|
||||
# si attr doit être globalement unique, l'unicité globale
|
||||
# Dans ce cas, on ne tiens pas compte de old_attrs cas ils
|
||||
# vont être effacé si le setitem réussi
|
||||
old_attrs = self[attr]
|
||||
for attribut in attrs_before_verif:
|
||||
attribut.check_uniqueness([unicode(content) for content in self.attrs[attr]])
|
||||
if attrs_before_verif.count(attribut) > 1:
|
||||
raise ValueError("%s en double\n(%s)" % (attribut.legend if attribut.legend else attr, attribut))
|
||||
attribut.check_uniqueness(old_attrs)
|
||||
|
||||
# On groupe les attributs précédents, et les nouveaux
|
||||
mixed_attrs = attrs_before_verif + self.attrs[attr]
|
||||
else:
|
||||
for attribut in attrs_before_verif:
|
||||
attribut.check_uniqueness([])
|
||||
mixed_attrs = attrs_before_verif
|
||||
mixed_attrs = attrs_before_verif + old_attrs
|
||||
|
||||
# Si c'est vide, on fait pas de vérifs, on avait une liste
|
||||
# vide avant, puis on en a une nouvelle après.
|
||||
if mixed_attrs:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue