summaryrefslogtreecommitdiffstats
path: root/ipalib
diff options
context:
space:
mode:
authorThierry Bordaz <tbordaz@redhat.com>2015-04-15 15:48:21 +0200
committerJan Cholasta <jcholast@redhat.com>2015-04-16 06:50:16 +0000
commitc20009123f3e4456bdf63b9d406543cb0e50ffce (patch)
treebae35085ec00aa7a5ceed64be558d10ad8c39742 /ipalib
parent1bd099a114a29e461307e0defcca3bfe422fabb5 (diff)
downloadfreeipa-c20009123f3e4456bdf63b9d406543cb0e50ffce.tar.gz
freeipa-c20009123f3e4456bdf63b9d406543cb0e50ffce.tar.xz
freeipa-c20009123f3e4456bdf63b9d406543cb0e50ffce.zip
User life cycle: allows MODRDN from ldap2
enhance update_entry_rdn so that is allows to move an entry a new superior https://fedorahosted.org/freeipa/ticket/3813 Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Diffstat (limited to 'ipalib')
-rw-r--r--ipalib/plugins/baseldap.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index 4b1c70192..0b1a48107 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -1417,10 +1417,12 @@ class LDAPUpdate(LDAPQuery, crud.Update):
if self.obj.rdn_is_primary_key and self.obj.primary_key.name in entry_attrs:
try:
# RDN change
- self._exc_wrapper(keys, options, ldap.update_entry_rdn)(
+ new_dn = DN((self.obj.primary_key.name,
+ entry_attrs[self.obj.primary_key.name]),
+ *entry_attrs.dn[1:])
+ self._exc_wrapper(keys, options, ldap.move_entry)(
entry_attrs.dn,
- RDN((self.obj.primary_key.name,
- entry_attrs[self.obj.primary_key.name])))
+ new_dn)
rdnkeys = keys[:-1] + (entry_attrs[self.obj.primary_key.name], )
entry_attrs.dn = self.obj.get_dn(*rdnkeys)