LDAP Wizard: make sure auto-detected suggestions are really applied initially. Also make initial filter compilation and user counting robust against race conditions.
This commit is contained in:
parent
cc725674e0
commit
06577f1fe2
|
@ -407,6 +407,7 @@ var LdapWizard = {
|
||||||
if($('#rawLoginFilterContainer').hasClass('invisible')) {
|
if($('#rawLoginFilterContainer').hasClass('invisible')) {
|
||||||
$('#ldap_loginfilter_attributes').multiselect('enable');
|
$('#ldap_loginfilter_attributes').multiselect('enable');
|
||||||
}
|
}
|
||||||
|
LdapWizard.postInitLoginFilter();
|
||||||
},
|
},
|
||||||
function (result) {
|
function (result) {
|
||||||
//deactivate if no attributes found
|
//deactivate if no attributes found
|
||||||
|
@ -443,10 +444,24 @@ var LdapWizard = {
|
||||||
//enable only when raw filter editing is not turned on
|
//enable only when raw filter editing is not turned on
|
||||||
$('#'+multisel).multiselect('enable');
|
$('#'+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) {
|
function (result) {
|
||||||
LdapWizard.hideSpinner('#'+multisel);
|
LdapWizard.hideSpinner('#'+multisel);
|
||||||
$('#'+multisel).multiselect('disable');
|
$('#'+multisel).multiselect('disable');
|
||||||
|
if(type == 'Users') {
|
||||||
|
LdapWizard.userFilterAvailableGroupsHasRun = true;
|
||||||
|
LdapWizard.postInitUserFilter();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
@ -471,9 +486,23 @@ var LdapWizard = {
|
||||||
LdapWizard.hideSpinner('#'+multisel);
|
LdapWizard.hideSpinner('#'+multisel);
|
||||||
LdapWizard.applyChanges(result);
|
LdapWizard.applyChanges(result);
|
||||||
$('#'+multisel).multiselect('refresh');
|
$('#'+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) {
|
function (result) {
|
||||||
LdapWizard.hideSpinner('#'+multisel);
|
LdapWizard.hideSpinner('#'+multisel);
|
||||||
|
if(type == 'User') {
|
||||||
|
LdapWizard.userFilterObjectClassesHasRun = true;
|
||||||
|
LdapWizard.postInitUserFilter();
|
||||||
|
}
|
||||||
//TODO: error handling
|
//TODO: error handling
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -536,11 +565,19 @@ var LdapWizard = {
|
||||||
LdapWizard.countGroups();
|
LdapWizard.countGroups();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/** init login filter tab section **/
|
||||||
|
|
||||||
initLoginFilter: function() {
|
initLoginFilter: function() {
|
||||||
LdapWizard.regardFilterMode('Login');
|
LdapWizard.regardFilterMode('Login');
|
||||||
LdapWizard.findAttributes();
|
LdapWizard.findAttributes();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
postInitLoginFilter: function() {
|
||||||
|
LdapWizard.composeFilter('login');
|
||||||
|
},
|
||||||
|
|
||||||
|
/** end of init user filter tab section **/
|
||||||
|
|
||||||
initMultiSelect: function(object, id, caption) {
|
initMultiSelect: function(object, id, caption) {
|
||||||
object.multiselect({
|
object.multiselect({
|
||||||
header: false,
|
header: false,
|
||||||
|
@ -553,13 +590,29 @@ var LdapWizard = {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/** init user filter tab section **/
|
||||||
|
|
||||||
|
userFilterObjectClassesHasRun: false,
|
||||||
|
userFilterAvailableGroupsHasRun: false,
|
||||||
|
|
||||||
initUserFilter: function() {
|
initUserFilter: function() {
|
||||||
|
LdapWizard.userFilterObjectClassesHasRun = false;
|
||||||
|
LdapWizard.userFilterAvailableGroupsHasRun = false;
|
||||||
LdapWizard.regardFilterMode('User');
|
LdapWizard.regardFilterMode('User');
|
||||||
LdapWizard.findObjectClasses('ldap_userfilter_objectclass', 'User');
|
LdapWizard.findObjectClasses('ldap_userfilter_objectclass', 'User');
|
||||||
LdapWizard.findAvailableGroups('ldap_userfilter_groups', 'Users');
|
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) {
|
onTabChange: function(event, ui) {
|
||||||
newTabIndex = 0;
|
newTabIndex = 0;
|
||||||
if(ui.newTab[0].id === '#ldapWizard2') {
|
if(ui.newTab[0].id === '#ldapWizard2') {
|
||||||
|
@ -626,8 +679,6 @@ var LdapWizard = {
|
||||||
} else if(mode == LdapWizard.filterModeAssisted
|
} else if(mode == LdapWizard.filterModeAssisted
|
||||||
&& !$('#raw'+subject+'FilterContainer').hasClass('invisible')) {
|
&& !$('#raw'+subject+'FilterContainer').hasClass('invisible')) {
|
||||||
LdapWizard['toggleRaw'+subject+'Filter']();
|
LdapWizard['toggleRaw'+subject+'Filter']();
|
||||||
} else {
|
|
||||||
c = $('#raw'+subject+'FilterContainer').hasClass('invisible');
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
function (result) {
|
function (result) {
|
||||||
|
|
Loading…
Reference in New Issue