Univention Bugzilla – Bug 23115
UDM-Objekte sollten anhand eines LDAP-Attributes ihren Objekttypen ermitteln können
Last modified: 2011-12-13 15:49:03 CET
Wie in Bug# 23111 beschrieben soll das LDAP-Schema um ein Attribut erweitert werden, das als String den UDM-Objekttypen enthält. Die UDM-Objekte müssten dahingehend erweitert werden, dass sie dieses LDAP-Attribut auslesen, wenn sie ihren Objekttypen ermitteln. Da die Ermittlung des Objekttypen derzeit ein Bottleneck darstellt, sollte durch diese Erweiterung die Performance beträchtlich gesteigert werden können. Einen Fallback für den Fall, dass das besagte LDAP-Attribut nicht vorhanden ist, wird vorest nicht benötigt. Zu überprüfen ist, wie sich diese Änderung auf benutzerdefinierte UDM-Module auswirkt. Müssen diese zwangsweise angepasst werden oder ist es jedem Modul überlassen, seine Objekttypen (über ein spezielle LDAP-Attribut oder anderweitig) zu ermitteln? Es ist auch zu überprüfen wie mit UDM-Objekten umgegangen werden kann, die von externen Programmen erzeugt werden können (bspw. LDAP-Samba-Objekte, oder andere), und die ggf. nicht ihren Objekttypen aus dem LDAP-Eintrag beziehen können.
In der Datei base/univention-python/modules/uldap.py in der Funktion getPolicies() muss der Code for oc in pattrs['objectClass']: if oc == 'top' or oc == 'univentionPolicy': continue ptype=oc break angepasst werden, weil sonst "univentionObjectType" als <ptype> erkannt werden würde, wenn die Änderungen von Bug #23111 mit dem Skript aus Bug #23114 aktiviert werden.
In simpleLdap werden objectClass und Attribute jetzt automatisch beim Anlegen hinzugefügt. getPolicies: univentionObject wird jetzt auch ausgenommen. Changelog ist hinzugefügt
QA: Das sieht gut aus, ein Ldapsearch zeigt, dass die LDAP-Objekte einen Eintrag univentionObjectType haben. Die identify-Funktion hat einen Fallback, der die Objekte auch weiterhin erkennt.
UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"