Blob Blame History Raw
From 8cd08a619b275155e21d71c1368a73c8814a8640 Mon Sep 17 00:00:00 2001
From: Jan Cholasta <jcholast@redhat.com>
Date: Thu, 17 Sep 2015 11:14:54 +0200
Subject: [PATCH] baseldap: make subtree deletion optional in LDAPDelete

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

Reviewed-By: Petr Vobornik <pvoborni@redhat.com>
---
 ipalib/plugins/baseldap.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index 31f38946afcbb51638bcab68a6e74ec309eba0e4..15b6bb2365705bb6b0dc0df258c6a5b59c4b7d8d 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -1565,6 +1565,8 @@ class LDAPDelete(LDAPMultiQuery):
 
     has_output_params = global_output_params
 
+    subtree_delete = True
+
     def execute(self, *keys, **options):
         ldap = self.obj.backend
 
@@ -1600,6 +1602,8 @@ class LDAPDelete(LDAPMultiQuery):
             except errors.NotFound:
                 self.obj.handle_not_found(*nkeys)
             except errors.NotAllowedOnNonLeaf:
+                if not self.subtree_delete:
+                    raise
                 # this entry is not a leaf entry, delete all child nodes
                 delete_subtree(dn)
 
-- 
2.4.3