From b117ed336a8744e6b2b7a8a531743ba58178d8a0 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Wed, 27 Nov 2013 10:50:45 +0000
Subject: [PATCH] Factor out duplicate code and fix cut n paste bug in LocalBackendModifyOperation which was preventing sync operations from bypassing backend INTERNAL_ONLY mode.
---
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java | 42 ++----------------------------------------
1 files changed, 2 insertions(+), 40 deletions(-)
diff --git a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
index e8c8095..8aa8a09 100644
--- a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
@@ -326,46 +326,8 @@
return;
}
- // If it is not a private backend, then check to see if the server or
- // backend is operating in read-only mode.
- if (!backend.isPrivateBackend())
- {
- switch (DirectoryServer.getWritabilityMode())
- {
- case DISABLED:
- setResultCodeAndMessageNoInfoDisclosure(entry,
- ResultCode.UNWILLING_TO_PERFORM,
- ERR_DELETE_SERVER_READONLY.get(String.valueOf(entryDN)));
- return;
-
- case INTERNAL_ONLY:
- if (!(isInternalOperation() || isSynchronizationOperation()))
- {
- setResultCodeAndMessageNoInfoDisclosure(entry,
- ResultCode.UNWILLING_TO_PERFORM,
- ERR_DELETE_SERVER_READONLY.get(String.valueOf(entryDN)));
- return;
- }
- }
-
- switch (backend.getWritabilityMode())
- {
- case DISABLED:
- setResultCodeAndMessageNoInfoDisclosure(entry,
- ResultCode.UNWILLING_TO_PERFORM,
- ERR_DELETE_BACKEND_READONLY.get(String.valueOf(entryDN)));
- return;
-
- case INTERNAL_ONLY:
- if (!(isInternalOperation() || isSynchronizationOperation()))
- {
- setResultCodeAndMessageNoInfoDisclosure(entry,
- ResultCode.UNWILLING_TO_PERFORM,
- ERR_DELETE_BACKEND_READONLY.get(String.valueOf(entryDN)));
- return;
- }
- }
- }
+ LocalBackendWorkflowElement.checkIfBackendIsWritable(backend, this,
+ entryDN, ERR_DELETE_SERVER_READONLY, ERR_DELETE_BACKEND_READONLY);
// The selected backend will have the responsibility of making sure that
// the entry actually exists and does not have any children (or possibly
--
Gitblit v1.10.0