From 1c1400a568940232bff55fa95094716b87fc8d9a Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 06 Dec 2013 16:13:01 +0000
Subject: [PATCH] OPENDJ-1088 (CR-2677) Wrong error message and result code when deleting branch as a user with insufficient access rights
---
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java | 30 +++++++++---------------------
1 files changed, 9 insertions(+), 21 deletions(-)
diff --git a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
index 7ed2707..cdc08e1 100644
--- a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
@@ -586,6 +586,8 @@
*/
private void handleRequestControls() throws DirectoryException
{
+ LocalBackendWorkflowElement.removeAllDisallowedControls(entryDN, this);
+
List<Control> requestControls = getRequestControls();
if ((requestControls != null) && (! requestControls.isEmpty()))
{
@@ -594,12 +596,6 @@
Control c = requestControls.get(i);
String oid = c.getOID();
- if (!LocalBackendWorkflowElement.isControlAllowed(entryDN, this, c))
- {
- // Skip disallowed non-critical controls.
- continue;
- }
-
if (oid.equals(OID_LDAP_ASSERTION))
{
LDAPAssertionRequestControl assertControl =
@@ -939,8 +935,6 @@
*/
private boolean handleConflictResolution()
{
- boolean returnVal = true;
-
for (SynchronizationProvider<?> provider :
DirectoryServer.getSynchronizationProviders()) {
try {
@@ -951,8 +945,7 @@
appendErrorMessage(result.getErrorMessage());
setMatchedDN(result.getMatchedDN());
setReferralURLs(result.getReferralURLs());
- returnVal = false;
- break;
+ return false;
}
} catch (DirectoryException de) {
if (debugEnabled()) {
@@ -963,11 +956,10 @@
getExceptionMessage(de)));
setResponseData(de);
- returnVal = false;
- break;
+ return false;
}
}
- return returnVal;
+ return true;
}
/**
@@ -977,8 +969,6 @@
*/
private boolean processPreOperation()
{
- boolean returnVal = true;
-
for (SynchronizationProvider<?> provider :
DirectoryServer.getSynchronizationProviders()) {
try {
@@ -989,8 +979,7 @@
appendErrorMessage(result.getErrorMessage());
setMatchedDN(result.getMatchedDN());
setReferralURLs(result.getReferralURLs());
- returnVal = false;
- break;
+ return false;
}
} catch (DirectoryException de) {
if (debugEnabled()) {
@@ -999,11 +988,10 @@
logError(ERR_MODDN_SYNCH_PREOP_FAILED.get(getConnectionID(),
getOperationID(), getExceptionMessage(de)));
setResponseData(de);
- returnVal = false;
- break;
+ return false;
}
}
- return returnVal;
+ return true;
}
/**
@@ -1022,7 +1010,7 @@
logError(ERR_MODDN_SYNCH_POSTOP_FAILED.get(getConnectionID(),
getOperationID(), getExceptionMessage(de)));
setResponseData(de);
- break;
+ return;
}
}
}
--
Gitblit v1.10.0