From 713d9fabc5e30e0dd4016328904dca66d75cf7e3 Mon Sep 17 00:00:00 2001
From: jdemendi <jdemendi@localhost>
Date: Tue, 31 Mar 2009 15:52:47 +0000
Subject: [PATCH] fix 3892, ACI evaluation is made optional when returning entries and references to clients

---
 opends/src/server/org/opends/server/core/SearchOperation.java |   41 ++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 40 insertions(+), 1 deletions(-)

diff --git a/opends/src/server/org/opends/server/core/SearchOperation.java b/opends/src/server/org/opends/server/core/SearchOperation.java
index ee0edfa..c69a599 100644
--- a/opends/src/server/org/opends/server/core/SearchOperation.java
+++ b/opends/src/server/org/opends/server/core/SearchOperation.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Copyright 2006-2009 Sun Microsystems, Inc.
  */
 package org.opends.server.core;
 
@@ -242,6 +242,26 @@
   public abstract boolean returnEntry(Entry entry, List<Control> controls);
 
   /**
+   * Used as a callback for backends to indicate that the provided entry matches
+   * the search criteria and that additional processing should be performed to
+   * potentially send it back to the client.
+   *
+   * @param  entry        The entry that matches the search criteria and should
+   *                      be sent to the client.
+   * @param  controls     The set of controls to include with the entry (may be
+   *                      <CODE>null</CODE> if none are needed).
+   * @param  evaluateAci  Indicates whether the access rights to the entry
+   *                      should be evaluated.
+   *
+   * @return  <CODE>true</CODE> if the caller should continue processing the
+   *          search request and sending additional entries and references, or
+   *          <CODE>false</CODE> if not for some reason (e.g., the size limit
+   *          has been reached or the search has been abandoned).
+   */
+  public abstract boolean returnEntry(Entry entry, List<Control> controls,
+                                      boolean evaluateAci);
+
+  /**
    * Used as a callback for backends to indicate that the provided search
    * reference was encountered during processing and that additional processing
    * should be performed to potentially send it back to the client.
@@ -258,6 +278,25 @@
                                           SearchResultReference reference);
 
   /**
+   * Used as a callback for backends to indicate that the provided search
+   * reference was encountered during processing and that additional processing
+   * should be performed to potentially send it back to the client.
+   *
+   * @param  reference    The search reference to send to the client.
+   * @param  dn           The DN related to the specified search reference.
+   * @param  evaluateAci  Indicates whether the access rights to the entry
+   *                      should be evaluated.
+   *
+   * @return  <CODE>true</CODE> if the caller should continue processing the
+   *          search request and sending additional entries and references , or
+   *          <CODE>false</CODE> if not for some reason (e.g., the size limit
+   *          has been reached or the search has been abandoned).
+   */
+  public abstract boolean returnReference(DN dn,
+                                          SearchResultReference reference,
+                                          boolean evaluateAci);
+
+  /**
    * Sends the search result done message to the client.  Note that this method
    * should only be called from external classes in special cases (e.g.,
    * persistent search) where they are sure that the result won't be sent by the

--
Gitblit v1.10.0