From c4befe332f208a3f69933df229fd369ca017ae5e Mon Sep 17 00:00:00 2001
From: vharseko <vharseko@3a-systems.ru>
Date: Tue, 17 May 2022 10:11:19 +0000
Subject: [PATCH] FIX Failed to delete entries under multiple backends (#231)

---
 opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
index 179aa50..2da5e02 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
@@ -21,6 +21,7 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.opendj.ldap.SearchScope;
 import org.opends.server.api.AccessControlHandler;
 import org.opends.server.api.LocalBackend;
 import org.opends.server.api.ClientConnection;
@@ -278,8 +279,9 @@
           DirectoryServer.getInstance().getServerContext().getBackendConfigManager();
       for (DN dn : backendConfigManager.findSubordinateLocalNamingContextsForEntry(entryDN))
       {
-        setResultCodeAndMessageNoInfoDisclosure(entry,
-            ResultCode.NOT_ALLOWED_ON_NONLEAF, ERR_DELETE_HAS_SUB_BACKEND.get(entryDN, dn));
+    	  if (dn.isInScopeOf(entryDN, SearchScope.WHOLE_SUBTREE)) {
+    		  setResultCodeAndMessageNoInfoDisclosure(entry,ResultCode.NOT_ALLOWED_ON_NONLEAF, ERR_DELETE_HAS_SUB_BACKEND.get(entryDN, dn));
+    	  }
         return;
       }
 

--
Gitblit v1.10.0