From 609c2e55abc05e4e4fc52715fe860b94c9d873ad Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Wed, 29 Apr 2015 14:47:11 +0200 Subject: [PATCH] Use Net_LDAP3::domain_root_dn() instead of find_domain() Resolves T134 --- plugins/kolab_auth/kolab_auth_ldap.php | 45 +------------------------- 1 file changed, 1 insertion(+), 44 deletions(-) diff --git a/plugins/kolab_auth/kolab_auth_ldap.php b/plugins/kolab_auth/kolab_auth_ldap.php index 230f3307..30c82bf4 100644 --- a/plugins/kolab_auth/kolab_auth_ldap.php +++ b/plugins/kolab_auth/kolab_auth_ldap.php @@ -404,7 +404,7 @@ class kolab_auth_ldap extends rcube_ldap_generic list($usr, $dom) = explode('@', $user); // unrealm domain, user login can contain a domain alias - if ($dom != $domain && ($dc = $this->find_domain($dom))) { + if ($dom != $domain && ($dc = $this->domain_root_dn($dom))) { // @FIXME: we should replace domain in $user, I suppose } } @@ -430,49 +430,6 @@ class kolab_auth_ldap extends rcube_ldap_generic return strtr($str, $replaces); } - /** - * Find root domain for specified domain - * - * @param string $domain Domain name - * - * @return string Domain DN string - */ - function find_domain($domain) - { - if (empty($domain) || empty($this->config['domain_base_dn']) || empty($this->config['domain_filter'])) { - return null; - } - - $base_dn = $this->config['domain_base_dn']; - $filter = $this->config['domain_filter']; - $name_attr = $this->config['domain_name_attribute']; - - if (empty($name_attr)) { - $name_attr = 'associateddomain'; - } - - $filter = str_replace('%s', rcube_ldap_generic::quote_string($domain), $filter); - $result = parent::search($base_dn, $filter, 'sub', array($name_attr, 'inetdomainbasedn')); - - if (!$result) { - return null; - } - - $entries = $result->entries(true); - $entry_dn = key($entries); - $entry = $entries[$entry_dn]; - - if (is_array($entry)) { - if (!empty($entry['inetdomainbasedn'])) { - return $entry['inetdomainbasedn']; - } - - $domain = is_array($entry[$name_attr]) ? $entry[$name_attr][0] : $entry[$name_attr]; - - return $domain ? 'dc=' . implode(',dc=', explode('.', $domain)) : null; - } - } - /** * Returns variables used for replacement in (last) parse_vars() call *