From 7486ef2bb077feb489a55db86707d96e69d12265 Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Fri, 30 Jul 2010 12:44:12 +0000
Subject: [PATCH] Implements a disk space thresholds feature, preventing the server from crashing or exiting of disks full.

---
 opends/src/server/org/opends/server/workflowelement/ndb/NDBBindOperation.java |   24 ++++++++----------------
 1 files changed, 8 insertions(+), 16 deletions(-)

diff --git a/opends/src/server/org/opends/server/workflowelement/ndb/NDBBindOperation.java b/opends/src/server/org/opends/server/workflowelement/ndb/NDBBindOperation.java
index eb0f50c..90117f4 100644
--- a/opends/src/server/org/opends/server/workflowelement/ndb/NDBBindOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/ndb/NDBBindOperation.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2008-2009 Sun Microsystems, Inc.
+ *      Copyright 2008-2010 Sun Microsystems, Inc.
  */
 package org.opends.server.workflowelement.ndb;
 
@@ -31,22 +31,13 @@
 import java.util.List;
 
 import org.opends.messages.Message;
+import org.opends.server.api.ClientConnection;
 import org.opends.server.api.plugin.PluginResult;
 import org.opends.server.core.BindOperation;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.PasswordPolicyState;
 import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.AccountStatusNotification;
-import org.opends.server.types.AccountStatusNotificationType;
-import org.opends.server.types.Attribute;
-import org.opends.server.types.AttributeType;
-import org.opends.server.types.AuthenticationInfo;
-import org.opends.server.types.ByteString;
-import org.opends.server.types.DebugLogLevel;
-import org.opends.server.types.DirectoryException;
-import org.opends.server.types.DN;
-import org.opends.server.types.Entry;
-import org.opends.server.types.ResultCode;
+import org.opends.server.types.*;
 
 import org.opends.server.workflowelement.localbackend.LocalBackendBindOperation;
 import static org.opends.messages.CoreMessages.*;
@@ -173,14 +164,15 @@
     if (pwPolicyState.passwordMatches(simplePassword)) {
       setResultCode(ResultCode.SUCCESS);
 
-      boolean isRoot = DirectoryServer.isRootDN(userEntry.getDN());
-      if (DirectoryServer.lockdownMode() && (!isRoot)) {
+      if (DirectoryServer.lockdownMode() &&
+            (! ClientConnection.hasPrivilege(userEntry,
+                Privilege.BYPASS_LOCKDOWN)))
+      {
         throw new DirectoryException(ResultCode.INVALID_CREDENTIALS,
           ERR_BIND_REJECTED_LOCKDOWN_MODE.get());
       }
       setAuthenticationInfo(new AuthenticationInfo(userEntry, getBindDN(),
-          simplePassword,
-        isRoot));
+          simplePassword, DirectoryServer.isRootDN(userEntry.getDN())));
 
 
       // Set resource limits for the authenticated user.

--
Gitblit v1.10.0