From 3067b8e17912839c60c6352fc4bbb37b7f156708 Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Tue, 10 Apr 2007 21:02:22 +0000
Subject: [PATCH] Add ACI support for proxy right. Issue #1489.

---
 opends/src/server/org/opends/server/core/ModifyOperation.java |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/opends/src/server/org/opends/server/core/ModifyOperation.java b/opends/src/server/org/opends/server/core/ModifyOperation.java
index 1c9ea1d..58cb53b 100644
--- a/opends/src/server/org/opends/server/core/ModifyOperation.java
+++ b/opends/src/server/org/opends/server/core/ModifyOperation.java
@@ -101,6 +101,7 @@
 import static org.opends.server.loggers.Error.*;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
+import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -1080,7 +1081,17 @@
 
                 break modifyProcessing;
               }
+              if (AccessControlConfigManager.getInstance().
+                      getAccessControlHandler().isProxiedAuthAllowed(this,
+                      authorizationEntry) == false) {
+                setResultCode(ResultCode.INSUFFICIENT_ACCESS_RIGHTS);
 
+                int msgID = MSGID_MODIFY_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS;
+                appendErrorMessage(getMessage(msgID, String.valueOf(entryDN)));
+
+                skipPostOperation = true;
+                break modifyProcessing;
+              }
 
               setAuthorizationEntry(authorizationEntry);
             }
@@ -1141,7 +1152,17 @@
                 break modifyProcessing;
               }
 
+              if (AccessControlConfigManager.getInstance().
+                      getAccessControlHandler().isProxiedAuthAllowed(this,
+                      authorizationEntry) == false) {
+                setResultCode(ResultCode.INSUFFICIENT_ACCESS_RIGHTS);
 
+                int msgID = MSGID_MODIFY_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS;
+                appendErrorMessage(getMessage(msgID, String.valueOf(entryDN)));
+
+                skipPostOperation = true;
+                break modifyProcessing;
+              }
               setAuthorizationEntry(authorizationEntry);
             }
 

--
Gitblit v1.10.0