mirror of
https://github.com/nextcloud/server.git
synced 2026-06-07 15:53:04 -04:00
Merge pull request #6175 from owncloud/fix_6142
LDAP Wizard: make sure auto-detected suggestions are really applied initially, fixes #6142
This commit is contained in:
commit
4de8c4e5db
4 changed files with 60 additions and 6 deletions
|
|
@ -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()) {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in a new issue