diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/__init__.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/__init__.py index 9a2ed9e..8d52201 100644 --- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/__init__.py +++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/__init__.py @@ -553,7 +553,7 @@ def _not_implemented_error(self, *args, **kwargs): class simpleLdap(base): - def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] ): + def __init__(self, co, lo, position, dn='', superordinate=None, attributes=None): global s4connector_present global s4connector_search @@ -575,10 +575,14 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] s4connector_present = False self.s4connector_present = s4connector_present + self.oldattr = {} if attributes: self.oldattr = attributes - else: - self.oldattr=self.lo.get(self.dn) + elif self.dn: + try: + self.oldattr = self.lo.get(self.dn, required=True) + except ldap.NO_SUCH_OBJECT: + raise univention.admin.uexceptions.noObject(self.dn) if self.oldattr: self._exists = True oldinfo=univention.admin.mapping.mapDict(self.mapping, self.oldattr)