Univention Bugzilla – Bug 18929
Fehlerhaftes if-elif-else-Konstrukt in uldap.py
Last modified: 2013-11-19 06:42:29 CET
Dieses Segment sollte noch einmal geprüft werden. Wieso müssen genau diese Attribute hier eine Sonderbehandlung erfahren? Ist das notwendig? +++ This bug was initially created as a clone of Bug #18926 +++ Created an attachment (id=2489) Test-Skript In dev/ucs/base/univention-python/modules/uldap.py#modify gibt es folgendes Konstrukt: if key == 'homePostalAddress': ... val=homePostalAddress if key == 'pager': ... val=postalAddress if key == 'mobile': ... val=mobileTelephoneNumber if key == 'pagerTelephoneNumber': ... val=pagerTelephoneNumber if key == "jpegPhoto": val=None else: val=oldvalue Da dort "if" statt "elif" verwendet wird, tritt für die ersten 4 Fälle auch immer der 'else'-Fall ein, der 'val' überschreibt.
(In reply to comment #0) > Dieses Segment sollte noch einmal geprüft werden. Wieso müssen genau diese > Attribute hier eine Sonderbehandlung erfahren? Ist das notwendig? Bei den Attributen handelt es sich um Multivalue-Attribute. Beim Löschen eines Wertes wird über das Konstrukt nicht gezielt der einzelne Wert herausgelöscht, sondern ein REPLACE durchgeführt, wobei die Liste der neuen Werte den zu löschenden Wert nicht enthält. Mal abgesehen davon, dass fraglich ist, ob man diese Vorgehensweise noch braucht, sollte der Code etwas generischer aufgebaut werden (derzeit viel Copy'n'Paste).
Deprecated checks for multivalue attributes have been removed. Build for UCS 3.2: univention-python 7.0.2-1.132.201307011439
* selective multivalue modifications on 'mobile' and 'pager' still work * no code found which could rely on a feature like this * changelog ok
UCS 3.2 has been released: http://docs.univention.de/release-notes-3.2-en.html http://docs.univention.de/release-notes-3.2-de.html If this error occurs again, please use "Clone This Bug".