diff options
Diffstat (limited to 'plugins/LdapAuthentication/LdapAuthenticationPlugin.php')
-rw-r--r-- | plugins/LdapAuthentication/LdapAuthenticationPlugin.php | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php index 0ce08bd78..39967fe42 100644 --- a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php +++ b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php @@ -67,6 +67,18 @@ class LdapAuthenticationPlugin extends AuthenticationPlugin throw new Exception("if password_changeable is set, the password attribute and password_encoding must also be specified"); } } + + function onAutoload($cls) + { + switch ($cls) + { + case 'MemcacheSchemaCache': + require_once(INSTALLDIR.'/plugins/LdapAuthentication/MemcacheSchemaCache.php'); + return false; + default: + return parent::onAutoload($cls); + } + } //---interface implementation---// @@ -175,12 +187,11 @@ class LdapAuthenticationPlugin extends AuthenticationPlugin } if($config == null) $this->default_ldap=$ldap; - if (isset($this->schema_cachefile)) { - $cacheConfig = array( - 'path' => $this->schema_cachefile, - 'max_age' => (isset($this->schema_maxage) ? $this->schema_maxage : 1200 ) - ); - $cacheObj = new Net_LDAP2_SimpleFileSchemaCache($cacheConfig); + $c = common_memcache(); + if (!empty($c)) { + $cacheObj = new MemcacheSchemaCache( + array('c'=>$c, + 'cacheKey' => common_cache_key('ldap_schema:' . crc32(serialize($config))))); $ldap->registerSchemaCache($cacheObj); } return $ldap; |