From c41b122d3771d11cb253eaae10d06afb6a3b6f05 Mon Sep 17 00:00:00 2001
From: fguigues <fguigues@localhost>
Date: Wed, 30 Apr 2008 16:04:54 +0000
Subject: [PATCH] 

---
 opends/src/snmp/src/org/opends/server/snmp/SNMPUserAcl.java |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/opends/src/snmp/src/org/opends/server/snmp/SNMPUserAcl.java b/opends/src/snmp/src/org/opends/server/snmp/SNMPUserAcl.java
index d51b9d0..44dd066 100644
--- a/opends/src/snmp/src/org/opends/server/snmp/SNMPUserAcl.java
+++ b/opends/src/snmp/src/org/opends/server/snmp/SNMPUserAcl.java
@@ -52,6 +52,11 @@
      */
     private static final String DEFAULT_USER = "defaultUser";
     /**
+     * Admin User for cloning mechanism.
+     */
+    private static final String ADMIN_USER = "snmpAdmin";
+
+    /**
      * Current Security Configuration for the SNMP Connection Handler.
      */
     private SNMPConnectionHandlerCfg currentConfig;
@@ -101,6 +106,17 @@
      * {@inheritDoc}
      */
     public boolean checkReadPermission(String user) {
+
+        // Test if clone user
+        if (user.equals(DEFAULT_USER)) {
+            return false;
+        }
+
+        // Test if clone user
+        if (user.equals(ADMIN_USER)) {
+            return false;
+        }
+
         if ((this.usersList.contains(ALL_USERS_ALLOWED)) ||
                 (this.usersList.contains(user))) {
             return true;
@@ -115,7 +131,7 @@
             int securityLevel) {
 
         // Special check for the defaultUser
-        if ((user.equals(DEFAULT_USER))
+        if ((user.equals(ADMIN_USER))
             && (contextName.equals("null"))
             && ((this.securityLevel.ordinal() + 1) >= securityLevel)) {
             return true;
@@ -123,6 +139,7 @@
 
         // Else
         if ((checkReadPermission(user))  &&
+                ((checkContextName(contextName))) &&
                 ((this.securityLevel.ordinal() + 1) >= securityLevel)) {
             return true;
         }
@@ -140,7 +157,7 @@
      * {@inheritDoc}
      */
     public boolean checkWritePermission(String user) {
-        if (user.equals(DEFAULT_USER)) {
+        if (user.equals(ADMIN_USER)) {
             return true;
         }
         return false;

--
Gitblit v1.10.0