From d5190084980835d68847a9b9c18f68c00b4cd37a Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 12 May 2014 06:13:24 -0400
Subject: [PATCH] Add configurable LDAP_OPT_DEREF option (#1489864) - patch from Stuart C. Naifeh

---
 CHANGELOG                                    |    1 +
 program/lib/Roundcube/rcube_ldap_generic.php |    3 +++
 config/defaults.inc.php                      |    2 ++
 3 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 3601908..5729345 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -16,6 +16,7 @@
 - Set In-Reply-To and References for forwarded messages (#1489593)
 - Removed redundant default_folders config option (#1489737)
 - Implemented IMAP SPECIAL-USE extension support [RFC6154] (#1487830)
+- Add configurable LDAP_OPT_DEREF option (#1489864)
 - Fix mbox files import
 
 RELEASE 1.0.1
diff --git a/config/defaults.inc.php b/config/defaults.inc.php
index a76eec6..85190eb 100644
--- a/config/defaults.inc.php
+++ b/config/defaults.inc.php
@@ -784,6 +784,8 @@
   'sizelimit'      => '0',          // Enables you to limit the count of entries fetched. Setting this to 0 means no limit.
   'timelimit'      => '0',          // Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit.
   'referrals'      => false,        // Sets the LDAP_OPT_REFERRALS option. Mostly used in multi-domain Active Directory setups
+  'dereference'    => 0,            // Sets the LDAP_OPT_DEREF option. One of: LDAP_DEREF_NEVER, LDAP_DEREF_SEARCHING, LDAP_DEREF_FINDING, LDAP_DEREF_ALWAYS
+                                    // Used where addressbook contains aliases to objects elsewhere in the LDAP tree.
 
   // definition for contact groups (uncomment if no groups are supported)
   // for the groups base_dn, the user replacements %fu, %u, $d and %dc work as for base_dn (see above)
diff --git a/program/lib/Roundcube/rcube_ldap_generic.php b/program/lib/Roundcube/rcube_ldap_generic.php
index f1048ef..f6f9884 100644
--- a/program/lib/Roundcube/rcube_ldap_generic.php
+++ b/program/lib/Roundcube/rcube_ldap_generic.php
@@ -190,6 +190,9 @@
 
             if (isset($this->config['referrals']))
                 ldap_set_option($lc, LDAP_OPT_REFERRALS, $this->config['referrals']);
+
+            if (isset($this->config['dereference']))
+                ldap_set_option($lc, LDAP_OPT_DEREF, $this->config['dereference']);
         }
         else {
             $this->_debug("S: NOT OK");

--
Gitblit v1.9.1