LDAP: gather defaults in one place, simplify readConfiguration
This commit is contained in:
parent
1c19e66712
commit
229d484200
|
@ -185,40 +185,69 @@ class Connection {
|
|||
$this->cache->clear($this->getCacheKey(null));
|
||||
}
|
||||
|
||||
private function getValue($varname) {
|
||||
static $defaults;
|
||||
if(is_null($defaults)){
|
||||
$defaults = $this->getDefaults();
|
||||
}
|
||||
return \OCP\Config::getAppValue($this->configID,
|
||||
$this->configPrefix.$varname,
|
||||
$defaults[$varname]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Caches the general LDAP configuration.
|
||||
*/
|
||||
private function readConfiguration($force = false) {
|
||||
if((!$this->configured || $force) && !is_null($this->configID)) {
|
||||
$this->config['ldapHost'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_host', '');
|
||||
$this->config['ldapBackupHost'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_backup_host', '');
|
||||
$this->config['ldapPort'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_port', 389);
|
||||
$this->config['ldapBackupPort'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_backup_port', $this->config['ldapPort']);
|
||||
$this->config['ldapOverrideMainServer']= \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_override_main_server', false);
|
||||
$this->config['ldapAgentName'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_dn', '');
|
||||
$this->config['ldapAgentPassword'] = base64_decode(\OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_agent_password', ''));
|
||||
$rawLdapBase = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_base', '');
|
||||
$this->config['ldapBase'] = preg_split('/\r\n|\r|\n/', $rawLdapBase);
|
||||
$this->config['ldapBaseUsers'] = preg_split('/\r\n|\r|\n/', \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_base_users', $rawLdapBase));
|
||||
$this->config['ldapBaseGroups'] = preg_split('/\r\n|\r|\n/', \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_base_groups', $rawLdapBase));
|
||||
$defaults = $this->getDefaults();
|
||||
$v = 'getValue';
|
||||
$this->config['ldapHost'] = $this->$v('ldap_host');
|
||||
$this->config['ldapBackupHost'] = $this->$v('ldap_backup_host');
|
||||
$this->config['ldapPort'] = $this->$v('ldap_port');
|
||||
$this->config['ldapBackupPort'] = $this->$v('ldapPort');
|
||||
$this->config['ldapOverrideMainServer']
|
||||
= $this->$v('ldap_override_main_server');
|
||||
$this->config['ldapAgentName'] = $this->$v('ldap_dn');
|
||||
$this->config['ldapAgentPassword']
|
||||
= base64_decode($this->$v('ldap_agent_password'));
|
||||
$rawLdapBase = $this->$v('ldap_base');
|
||||
$this->config['ldapBase']
|
||||
= preg_split('/\r\n|\r|\n/', $rawLdapBase);
|
||||
$this->config['ldapBaseUsers']
|
||||
= preg_split('/\r\n|\r|\n/', ($this->$v('ldap_base_users')));
|
||||
$this->config['ldapBaseGroups']
|
||||
= preg_split('/\r\n|\r|\n/', $this->$v('ldap_base_groups'));
|
||||
unset($rawLdapBase);
|
||||
$this->config['ldapTLS'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_tls', 0);
|
||||
$this->config['ldapNoCase'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_nocase', 0);
|
||||
$this->config['turnOffCertCheck'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_turn_off_cert_check', 0);
|
||||
$this->config['ldapUserDisplayName'] = mb_strtolower(\OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_display_name', 'uid'), 'UTF-8');
|
||||
$this->config['ldapUserFilter'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_userlist_filter', 'objectClass=person');
|
||||
$this->config['ldapGroupFilter'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_group_filter', '(objectClass=posixGroup)');
|
||||
$this->config['ldapLoginFilter'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_login_filter', '(uid=%uid)');
|
||||
$this->config['ldapGroupDisplayName'] = mb_strtolower(\OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_group_display_name', 'uid'), 'UTF-8');
|
||||
$this->config['ldapQuotaAttribute'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_quota_attr', '');
|
||||
$this->config['ldapQuotaDefault'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_quota_def', '');
|
||||
$this->config['ldapEmailAttribute'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_email_attr', '');
|
||||
$this->config['ldapGroupMemberAssocAttr'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_group_member_assoc_attribute', 'uniqueMember');
|
||||
$this->config['ldapIgnoreNamingRules'] = \OCP\Config::getSystemValue('ldapIgnoreNamingRules', false);
|
||||
$this->config['ldapCacheTTL'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_cache_ttl', 10*60);
|
||||
$this->config['ldapUuidAttribute'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_uuid_attribute', 'auto');
|
||||
$this->config['ldapOverrideUuidAttribute'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'ldap_override_uuid_attribute', 0);
|
||||
$this->config['homeFolderNamingRule'] = \OCP\Config::getAppValue($this->configID, $this->configPrefix.'home_folder_naming_rule', 'opt:username');
|
||||
$this->config['ldapTLS'] = $this->$v('ldap_tls');
|
||||
$this->config['ldapNoCase'] = $this->$v('ldap_nocase');
|
||||
$this->config['turnOffCertCheck']
|
||||
= $this->$v('ldap_turn_off_cert_check');
|
||||
$this->config['ldapUserDisplayName']
|
||||
= mb_strtolower($this->$v('ldap_display_name'),'UTF-8');
|
||||
$this->config['ldapUserFilter']
|
||||
= $this->$v('ldap_userlist_filter');
|
||||
$this->config['ldapGroupFilter'] = $this->$v('ldap_group_filter');
|
||||
$this->config['ldapLoginFilter'] = $this->$v('ldap_login_filter');
|
||||
$this->config['ldapGroupDisplayName']
|
||||
= mb_strtolower($this->$v('ldap_group_display_name'), 'UTF-8');
|
||||
$this->config['ldapQuotaAttribute']
|
||||
= $this->$v('ldap_quota_attr');
|
||||
$this->config['ldapQuotaDefault']
|
||||
= $this->$v('ldap_quota_def');
|
||||
$this->config['ldapEmailAttribute']
|
||||
= $this->$v('ldap_email_attr');
|
||||
$this->config['ldapGroupMemberAssocAttr']
|
||||
= $this->$v('ldap_group_member_assoc_attribute');
|
||||
$this->config['ldapIgnoreNamingRules']
|
||||
= \OCP\Config::getSystemValue('ldapIgnoreNamingRules', false);
|
||||
$this->config['ldapCacheTTL'] = $this->$v('ldap_cache_ttl');
|
||||
$this->config['ldapUuidAttribute']
|
||||
= $this->$v('ldap_uuid_attribute');
|
||||
$this->config['ldapOverrideUuidAttribute']
|
||||
= $this->$v('ldap_override_uuid_attribute');
|
||||
$this->config['homeFolderNamingRule']
|
||||
= $this->$v('home_folder_naming_rule');
|
||||
|
||||
$this->configured = $this->validateConfiguration();
|
||||
}
|
||||
|
@ -326,6 +355,40 @@ class Connection {
|
|||
return $configurationOK;
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns an associted array with the default values. Keys are correspond
|
||||
* to configvalue entries in the database table
|
||||
*/
|
||||
public function getDefaults() {
|
||||
return array(
|
||||
'ldap_host' => '',
|
||||
'ldap_port' => '389',
|
||||
'ldap_backup_host' => '',
|
||||
'ldap_backup_port' => '',
|
||||
'ldap_override_main_server' => '',
|
||||
'ldap_dn' => '',
|
||||
'ldap_agent_password' => '',
|
||||
'ldap_base' => '',
|
||||
'ldap_base_users' => '',
|
||||
'ldap_base_groups' => '',
|
||||
'ldap_userlist_filter' => 'objectClass=person',
|
||||
'ldap_login_filter' => 'uid=%uid',
|
||||
'ldap_group_filter' => 'objectClass=posixGroup',
|
||||
'ldap_display_name' => 'cn',
|
||||
'ldap_group_display_name' => 'cn',
|
||||
'ldap_tls' => 1,
|
||||
'ldap_nocase' => 0,
|
||||
'ldap_quota_def' => '',
|
||||
'ldap_quota_attr' => '',
|
||||
'ldap_email_attr' => '',
|
||||
'ldap_group_member_assoc_attribute' => 'uniqueMember',
|
||||
'ldap_cache_ttl' => 600,
|
||||
'ldap_uuid_attribute' => 'auto',
|
||||
'ldap_override_uuid_attribute' => 0,
|
||||
'home_folder_naming_rule' => '',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Connects and Binds to LDAP
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue