LdapServer: fix handing new superior DN in rename_object() and add delete_old parameter
This commit is contained in:
parent
4135d00dd3
commit
933efd4086
1 changed files with 29 additions and 4 deletions
|
@ -205,13 +205,38 @@ class LdapServer(object):
|
||||||
msg.append('%s - %s %s: %s' % (prefix, op, attr, val))
|
msg.append('%s - %s %s: %s' % (prefix, op, attr, val))
|
||||||
return '\n'.join(msg)
|
return '\n'.join(msg)
|
||||||
|
|
||||||
def rename_object(self,dn,new_rdn):
|
def rename_object(self, dn, new_rdn, new_sup=None, delete_old=True):
|
||||||
|
# If new_rdn is a complete DN, split new RDN and new superior DN
|
||||||
|
if len(new_rdn.split(',')) > 1:
|
||||||
|
self.logger.debug(
|
||||||
|
"LdapServer - Rename with a full new DN detected (%s): split new RDN and new superior DN",
|
||||||
|
new_rdn
|
||||||
|
)
|
||||||
|
assert new_sup is None, "You can't provide a complete DN as new_rdn and also provide new_sup parameter"
|
||||||
|
new_dn_parts = new_rdn.split(',')
|
||||||
|
new_sup = ','.join(new_dn_parts[1:])
|
||||||
|
new_rdn = new_dn_parts[0]
|
||||||
try:
|
try:
|
||||||
self.logger.debug("LdapServer - Rename %s in %s" % (dn,new_rdn))
|
self.logger.debug(
|
||||||
self.con.rename_s(dn,new_rdn)
|
"LdapServer - Rename %s in %s (new superior: %s, delete old: %s)",
|
||||||
|
dn,
|
||||||
|
new_rdn,
|
||||||
|
"same" if new_sup is None else new_sup,
|
||||||
|
delete_old
|
||||||
|
)
|
||||||
|
self.con.rename_s(dn, new_rdn, newsuperior=new_sup, delold=delete_old)
|
||||||
return True
|
return True
|
||||||
except ldap.LDAPError, e:
|
except ldap.LDAPError, e:
|
||||||
self._error("LdapServer - Error renaming %s in %s : %s" % (dn,new_rdn,e), logging.ERROR)
|
self._error(
|
||||||
|
"LdapServer - Error renaming %s in %s (new superior: %s, delete old: %s): %s" % (
|
||||||
|
dn,
|
||||||
|
new_rdn,
|
||||||
|
"same" if new_sup is None else new_sup,
|
||||||
|
delete_old,
|
||||||
|
e
|
||||||
|
),
|
||||||
|
logging.ERROR
|
||||||
|
)
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue