/** * Find domain by name */ private function find_domain($domain) { $ckey = 'domain::' . $domain; /* // use memcache if ($domain = $this->get_cache_data($ckey)) { return $domain; } */ $domain_base_dn = $this->conf->get('ldap', 'domain_base_dn'); $domain_filter = $this->conf->get('ldap', 'domain_filter'); $domain_name_attribute = $this->conf->get('ldap', 'domain_name_attribute'); if (empty($domain_name_attribute)) { $domain_name_attribute = 'associateddomain'; } $name_filter = $domain_name_attribute . "=" . Net_LDAP3::quote_string($domain); $domain_filter = "(&" . $domain_filter . "(" . $name_filter . "))"; if ($result = $this->ldap->search($domain_base_dn, $domain_filter, 'sub', array($domain_name_attribute))) { $result = $result->entries(true); // root domain $domain = current($result); $domain = current((array) $domain[$domain_name_attribute]); /* // cache domain DN $this->set_cache_data($ckey, $domain); */ return $domain; } }