baseldap: make subtree deletion optional in LDAPDelete

https://fedorahosted.org/freeipa/ticket/5250

Reviewed-By: Petr Vobornik <pvoborni@redhat.com>
This commit is contained in:
Jan Cholasta 2015-09-17 11:14:54 +02:00 committed by Petr Vobornik
parent 33aba6f35e
commit 2964b019d9

View File

@ -1570,6 +1570,8 @@ class LDAPDelete(LDAPMultiQuery):
has_output_params = global_output_params has_output_params = global_output_params
subtree_delete = True
def execute(self, *keys, **options): def execute(self, *keys, **options):
ldap = self.obj.backend ldap = self.obj.backend
@ -1605,6 +1607,8 @@ class LDAPDelete(LDAPMultiQuery):
except errors.NotFound: except errors.NotFound:
self.obj.handle_not_found(*nkeys) self.obj.handle_not_found(*nkeys)
except errors.NotAllowedOnNonLeaf: except errors.NotAllowedOnNonLeaf:
if not self.subtree_delete:
raise
# this entry is not a leaf entry, delete all child nodes # this entry is not a leaf entry, delete all child nodes
delete_subtree(dn) delete_subtree(dn)