aboutsummaryrefslogtreecommitdiffstats
path: root/apps/user_ldap/js/settings.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/user_ldap/js/settings.js')
-rw-r--r--apps/user_ldap/js/settings.js72
1 files changed, 66 insertions, 6 deletions
diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js
index 5b5f2030635..acf88ef58a4 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
}
);
@@ -489,13 +518,17 @@ var LdapWizard = {
loginfilter = $('#ldap_login_filter').val();
//FIXME: activates a manually deactivated configuration.
- if(host && port && base && userfilter && loginfilter) {
+ if(host && port && base && userfilter && loginfilter) {
LdapWizard.updateStatusIndicator(true);
if($('#ldap_configuration_active').is(':checked')) {
return;
}
- $('#ldap_configuration_active').prop('checked', true);
- LdapWizard.save($('#ldap_configuration_active')[0]);
+ if(!LdapWizard.isConfigurationActiveControlLocked) {
+ //avoids a manually deactivated connection will be activated
+ //upon opening the admin page
+ $('#ldap_configuration_active').prop('checked', true);
+ LdapWizard.save($('#ldap_configuration_active')[0]);
+ }
} else {
if($('#ldap_configuration_active').is(':checked')) {
$('#ldap_configuration_active').prop('checked', false);
@@ -517,9 +550,12 @@ var LdapWizard = {
$(id + " + button").css('display', 'inline');
},
+ isConfigurationActiveControlLocked: true,
+
init: function() {
LdapWizard.basicStatusCheck();
LdapWizard.functionalityCheck();
+ LdapWizard.isConfigurationActiveControlLocked = false;
},
initGroupFilter: function() {
@@ -529,11 +565,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 +592,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 +681,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) {