summaryrefslogtreecommitdiffstats
path: root/ipalib/plugins/baseldap.py
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2013-02-04 09:47:00 +0100
committerMartin Kosek <mkosek@redhat.com>2013-03-01 16:59:47 +0100
commita09c50671ecc53af63765afca13edd27ee598081 (patch)
tree07f8c21e0be27b92dfe73ab505ea5bae63fd39cc /ipalib/plugins/baseldap.py
parent3aa39547df18bc77ba49720f8a3a1a0052907859 (diff)
downloadfreeipa-a09c50671ecc53af63765afca13edd27ee598081.tar.gz
freeipa-a09c50671ecc53af63765afca13edd27ee598081.tar.xz
freeipa-a09c50671ecc53af63765afca13edd27ee598081.zip
Use full DNs in plugin code.
Diffstat (limited to 'ipalib/plugins/baseldap.py')
-rw-r--r--ipalib/plugins/baseldap.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index 20ae1cbee..b125b531c 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -470,12 +470,12 @@ class LDAPObject(Object):
if self.parent_object:
parent_dn = self.api.Object[self.parent_object].get_dn(*keys[:-1])
else:
- parent_dn = self.container_dn
+ parent_dn = DN(self.container_dn, api.env.basedn)
if self.rdn_attribute:
try:
(dn, entry_attrs) = self.backend.find_entry_by_attr(
self.primary_key.name, keys[-1], self.object_class, [''],
- self.container_dn
+ DN(self.container_dn, api.env.basedn)
)
except errors.NotFound:
pass
@@ -534,7 +534,8 @@ class LDAPObject(Object):
for member in entry_attrs.setdefault(attr, []):
for ldap_obj_name in self.attribute_members[attr]:
ldap_obj = self.api.Object[ldap_obj_name]
- if ldap_obj.container_dn in member:
+ container_dn = DN(ldap_obj.container_dn, api.env.basedn)
+ if member.endswith(container_dn):
new_attr = '%s_%s' % (attr, ldap_obj.name)
entry_attrs.setdefault(new_attr, []).append(
ldap_obj.get_primary_key_from_dn(member)
@@ -1012,7 +1013,8 @@ class LDAPCreate(BaseLDAPCommand, crud.Create):
if dn_attr != self.obj.primary_key.name:
self.obj.handle_duplicate_entry(*keys)
dn = ldap.make_dn(
- entry_attrs, self.obj.rdn_attribute, self.obj.container_dn
+ entry_attrs, self.obj.rdn_attribute,
+ DN(self.obj.container_dn, api.env.basedn)
)
if options.get('all', False):
@@ -1059,7 +1061,7 @@ class LDAPCreate(BaseLDAPCommand, crud.Create):
object_class = None
(dn, entry_attrs) = self._exc_wrapper(keys, options, ldap.find_entry_by_attr)(
self.obj.primary_key.name, keys[-1], object_class, attrs_list,
- self.obj.container_dn
+ DN(self.obj.container_dn, api.env.basedn)
)
assert isinstance(dn, DN)
else:
@@ -1807,7 +1809,7 @@ class LDAPSearch(BaseLDAPCommand, crud.Search):
if self.obj.parent_object:
base_dn = self.api.Object[self.obj.parent_object].get_dn(*args[:-1])
else:
- base_dn = self.obj.container_dn
+ base_dn = DN(self.obj.container_dn, api.env.basedn)
assert isinstance(base_dn, DN)
search_kw = self.args_options_2_entry(**options)