diff --git a/apps/user_ldap/ajax/testConfiguration.php b/apps/user_ldap/ajax/testConfiguration.php index b31fd983995..a6375209611 100644 --- a/apps/user_ldap/ajax/testConfiguration.php +++ b/apps/user_ldap/ajax/testConfiguration.php @@ -30,6 +30,8 @@ $l=OC_L10N::get('user_ldap'); $ldapWrapper = new OCA\user_ldap\lib\LDAP(); $connection = new \OCA\user_ldap\lib\Connection($ldapWrapper, '', null); +//needs to be true, otherwise it will also fail with an irritating message +$_POST['ldap_configuration_active'] = 1; if($connection->setConfiguration($_POST)) { //Configuration is okay if($connection->bind()) { diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js index 5b5f2030635..49e6bf8d4bd 100644 --- a/apps/user_ldap/js/settings.js +++ b/apps/user_ldap/js/settings.js @@ -407,6 +407,7 @@ var LdapWizard = { if($('#rawLoginFilterContainer').hasClass('invisible')) { $('#ldap_loginfilter_attributes').multiselect('enable'); } + LdapWizard.postInitLoginFilter(); }, function (result) { //deactivate if no attributes found @@ -443,10 +444,24 @@ var LdapWizard = { //enable only when raw filter editing is not turned on $('#'+multisel).multiselect('enable'); } + if(type === 'Users') { + //required for initial save + filter = $('#ldap_userlist_filter').val(); + if(!filter) { + LdapWizard.saveMultiSelect(multisel, + $('#'+multisel).multiselect("getChecked")); + } + LdapWizard.userFilterAvailableGroupsHasRun = true; + LdapWizard.postInitUserFilter(); + } }, function (result) { LdapWizard.hideSpinner('#'+multisel); $('#'+multisel).multiselect('disable'); + if(type == 'Users') { + LdapWizard.userFilterAvailableGroupsHasRun = true; + LdapWizard.postInitUserFilter(); + } } ); }, @@ -471,9 +486,23 @@ var LdapWizard = { LdapWizard.hideSpinner('#'+multisel); LdapWizard.applyChanges(result); $('#'+multisel).multiselect('refresh'); + if(type === 'User') { + //required for initial save + filter = $('#ldap_userlist_filter').val(); + if(!filter) { + LdapWizard.saveMultiSelect(multisel, + $('#'+multisel).multiselect("getChecked")); + } + LdapWizard.userFilterObjectClassesHasRun = true; + LdapWizard.postInitUserFilter(); + } }, function (result) { LdapWizard.hideSpinner('#'+multisel); + if(type == 'User') { + LdapWizard.userFilterObjectClassesHasRun = true; + LdapWizard.postInitUserFilter(); + } //TODO: error handling } ); @@ -529,11 +558,21 @@ var LdapWizard = { LdapWizard.countGroups(); }, + /** init login filter tab section **/ + initLoginFilter: function() { LdapWizard.regardFilterMode('Login'); LdapWizard.findAttributes(); }, + postInitLoginFilter: function() { + if($('#rawLoginFilterContainer').hasClass('invisible')) { + LdapWizard.composeFilter('login'); + } + }, + + /** end of init user filter tab section **/ + initMultiSelect: function(object, id, caption) { object.multiselect({ header: false, @@ -546,13 +585,29 @@ var LdapWizard = { }); }, + /** init user filter tab section **/ + + userFilterObjectClassesHasRun: false, + userFilterAvailableGroupsHasRun: false, + initUserFilter: function() { + LdapWizard.userFilterObjectClassesHasRun = false; + LdapWizard.userFilterAvailableGroupsHasRun = false; LdapWizard.regardFilterMode('User'); LdapWizard.findObjectClasses('ldap_userfilter_objectclass', 'User'); LdapWizard.findAvailableGroups('ldap_userfilter_groups', 'Users'); - LdapWizard.countUsers(); }, + postInitUserFilter: function() { + if(LdapWizard.userFilterObjectClassesHasRun + && LdapWizard.userFilterAvailableGroupsHasRun) { + LdapWizard.composeFilter('user'); + LdapWizard.countUsers(); + } + }, + + /** end of init user filter tab section **/ + onTabChange: function(event, ui) { newTabIndex = 0; if(ui.newTab[0].id === '#ldapWizard2') { @@ -619,8 +674,6 @@ var LdapWizard = { } else if(mode == LdapWizard.filterModeAssisted && !$('#raw'+subject+'FilterContainer').hasClass('invisible')) { LdapWizard['toggleRaw'+subject+'Filter'](); - } else { - c = $('#raw'+subject+'FilterContainer').hasClass('invisible'); } }, function (result) { diff --git a/apps/user_ldap/lib/configuration.php b/apps/user_ldap/lib/configuration.php index c396d5b4bf8..874082f78f6 100644 --- a/apps/user_ldap/lib/configuration.php +++ b/apps/user_ldap/lib/configuration.php @@ -308,7 +308,7 @@ class Configuration { 'ldap_user_filter_mode' => 0, 'ldap_userfilter_objectclass' => '', 'ldap_userfilter_groups' => '', - 'ldap_login_filter' => 'uid=%uid', + 'ldap_login_filter' => '', 'ldap_login_filter_mode' => 0, 'ldap_loginfilter_email' => 0, 'ldap_loginfilter_username' => 1, diff --git a/apps/user_ldap/lib/wizard.php b/apps/user_ldap/lib/wizard.php index 84b397cf5e8..348a871e2b3 100644 --- a/apps/user_ldap/lib/wizard.php +++ b/apps/user_ldap/lib/wizard.php @@ -432,7 +432,6 @@ class Wizard extends LDAPUtility { $this->configuration->setConfiguration($config); \OCP\Util::writeLog('user_ldap', 'Wiz: detected Port '. $p, \OCP\Util::DEBUG); $this->result->addChange('ldap_port', $p); - $this->result->addChange('ldap_tls', intval($t)); return $this->result; } } @@ -1001,7 +1000,7 @@ class Wizard extends LDAPUtility { private function getConnection() { if(!is_null($this->cr)) { - return $cr; + return $this->cr; } $cr = $this->ldap->connect( $this->configuration->ldapHost.':'.$this->configuration->ldapPort,