from univention.admin.hook import simpleHook class AttributeHook(simpleHook): attribute_name = [] def hook_open(self, obj): value = obj.get(self.attribute_name) obj[self.attribute_name] = self.map_attribute_value_to_udm(value) def hook_ldap_modlist(self, obj, ml): new_ml = [] for key, old_value, new_value in ml: if key == self.attribute_name: new_value = self.map_attribute_value_to_ldap(new_value) new_ml.append((key, old_value, new_value)) return new_ml def map_attribute_value_to_ldap(self, value): # return value as it shall be saved in ldap return value def map_attribute_value_to_udm(self, value): # return value as it shall be used in udm objects # needs to be syntax compliant return value