From 43e79f41f34b71499b9bac85d27b87b53a569da0 Mon Sep 17 00:00:00 2001 From: ben-denham Date: Fri, 28 Feb 2014 15:07:25 +1300 Subject: [PATCH 1/6] Added improved version of patch by @blizzz in https://github.com/owncloud/core/issues/6651#issuecomment-32261257 to stop filter settings from being reset under a race condition. --- apps/user_ldap/js/settings.js | 192 +++++++++++++++++++++------------- 1 file changed, 118 insertions(+), 74 deletions(-) diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js index acf88ef58a..0470ee079f 100644 --- a/apps/user_ldap/js/settings.js +++ b/apps/user_ldap/js/settings.js @@ -138,6 +138,108 @@ var LdapConfiguration = { } }; + +// LdapFilter object. + +function LdapFilter(target) { + this.locked = true; + this.target = false; + this.mode = LdapWizard.filterModeAssisted; + this.lazyRunCompose = false; + + if( target === 'User' || + target === 'Login' || + target === 'Group') { + this.target = target; + this.determineMode(); + } +} + +LdapFilter.prototype.compose = function() { + var action; + + if(this.locked) { + this.lazyRunCompose = true; + return false; + } + + if(this.target === 'User') { + action = 'getUserListFilter'; + } else if(this.target === 'Login') { + action = 'getUserLoginFilter'; + } else if(this.target === 'Group') { + action = 'getGroupFilter'; + } + + if(!$('#raw'+this.target+'FilterContainer').hasClass('invisible')) { + //Raw filter editing, i.e. user defined filter, don't compose + return; + } + + var param = 'action='+action+ + '&ldap_serverconfig_chooser='+ + encodeURIComponent($('#ldap_serverconfig_chooser').val()); + + var filter = this; + + LdapWizard.ajax(param, + function(result) { + LdapWizard.applyChanges(result); + if(filter.target === 'User') { + LdapWizard.countUsers(); + } else if(filter.target === 'Group') { + LdapWizard.countGroups(); + LdapWizard.detectGroupMemberAssoc(); + } + }, + function (result) { + // error handling + } + ); +} + +LdapFilter.prototype.determineMode = function() { + var param = 'action=get'+encodeURIComponent(this.target)+'FilterMode'+ + '&ldap_serverconfig_chooser='+ + encodeURIComponent($('#ldap_serverconfig_chooser').val()); + + var filter = this; + LdapWizard.ajax(param, + function(result) { + property = 'ldap' + filter.target + 'FilterMode'; + filter.mode = result.changes[property]; + if(filter.mode == LdapWizard.filterModeRaw + && $('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { + LdapWizard['toggleRaw'+filter.target+'Filter'](); + } else if(filter.mode == LdapWizard.filterModeAssisted + && !$('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { + LdapWizard['toggleRaw'+filter.target+'Filter'](); + } + filter.unlock(); + }, + function (result) { + //on error case get back to default i.e. Assisted + if(!$('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { + LdapWizard['toggleRaw'+filter.target+'Filter'](); + filter.mode = LdapWizard.filterModeAssisted; + } + filter.unlock(); + } + ); + +} + +LdapFilter.prototype.unlock = function() { + this.locked = false; + if(this.lazyRunCompose) { + this.lazyRunCompose = false; + this.compose(); + } +} + +// end of LdapFilter object. + + var LdapWizard = { checkPortInfoShown: false, saveBlacklist: {}, @@ -145,6 +247,9 @@ var LdapWizard = { spinner: '', filterModeAssisted: 0, filterModeRaw: 1, + userFilter: false, + loginFilter: false, + groupFilter: false, ajax: function(param, fnOnSuccess, fnOnError) { $.post( @@ -275,41 +380,6 @@ var LdapWizard = { } }, - composeFilter: function(type) { - subject = type.charAt(0).toUpperCase() + type.substr(1); - if(!$('#raw'+subject+'FilterContainer').hasClass('invisible')) { - //Raw filter editing, i.e. user defined filter, don't compose - return; - } - - if(type == 'user') { - action = 'getUserListFilter'; - } else if(type == 'login') { - action = 'getUserLoginFilter'; - } else if(type == 'group') { - action = 'getGroupFilter'; - } - - param = 'action='+action+ - '&ldap_serverconfig_chooser='+ - encodeURIComponent($('#ldap_serverconfig_chooser').val()); - - LdapWizard.ajax(param, - function(result) { - LdapWizard.applyChanges(result); - if(type == 'user') { - LdapWizard.countUsers(); - } else if(type == 'group') { - LdapWizard.countGroups(); - LdapWizard.detectGroupMemberAssoc(); - } - }, - function (result) { - // error handling - } - ); - }, - controlBack: function() { curTabIndex = $('#ldapSettings').tabs('option', 'active'); if(curTabIndex == 0) { @@ -559,7 +629,7 @@ var LdapWizard = { }, initGroupFilter: function() { - LdapWizard.regardFilterMode('Group'); + LdapWizard.groupFilter = new LdapFilter('Group'); LdapWizard.findObjectClasses('ldap_groupfilter_objectclass', 'Group'); LdapWizard.findAvailableGroups('ldap_groupfilter_groups', 'Groups'); LdapWizard.countGroups(); @@ -568,13 +638,13 @@ var LdapWizard = { /** init login filter tab section **/ initLoginFilter: function() { - LdapWizard.regardFilterMode('Login'); + LdapWizard.loginFilter = new LdapFilter('Login'); LdapWizard.findAttributes(); }, postInitLoginFilter: function() { if($('#rawLoginFilterContainer').hasClass('invisible')) { - LdapWizard.composeFilter('login'); + LdapWizard.loginFilter.compose(); } }, @@ -600,7 +670,7 @@ var LdapWizard = { initUserFilter: function() { LdapWizard.userFilterObjectClassesHasRun = false; LdapWizard.userFilterAvailableGroupsHasRun = false; - LdapWizard.regardFilterMode('User'); + LdapWizard.userFilter = new LdapFilter('User'); LdapWizard.findObjectClasses('ldap_userfilter_objectclass', 'User'); LdapWizard.findAvailableGroups('ldap_userfilter_groups', 'Users'); }, @@ -608,7 +678,7 @@ var LdapWizard = { postInitUserFilter: function() { if(LdapWizard.userFilterObjectClassesHasRun && LdapWizard.userFilterAvailableGroupsHasRun) { - LdapWizard.composeFilter('user'); + LdapWizard.userFilter.compose(); LdapWizard.countUsers(); } }, @@ -657,7 +727,7 @@ var LdapWizard = { if(triggerObj.id == 'ldap_loginfilter_username' || triggerObj.id == 'ldap_loginfilter_email') { - LdapWizard.composeFilter('login'); + LdapWizard.loginFilter.compose(); } if($('#ldapSettings').tabs('option', 'active') == 0) { @@ -666,32 +736,6 @@ var LdapWizard = { } }, - regardFilterMode: function(subject) { - param = 'action=get'+encodeURIComponent(subject)+'FilterMode'+ - '&ldap_serverconfig_chooser='+ - encodeURIComponent($('#ldap_serverconfig_chooser').val()); - - LdapWizard.ajax(param, - function(result) { - property = 'ldap' + subject + 'FilterMode'; - mode = result.changes[property]; - if(mode == LdapWizard.filterModeRaw - && $('#raw'+subject+'FilterContainer').hasClass('invisible')) { - LdapWizard['toggleRaw'+subject+'Filter'](); - } else if(mode == LdapWizard.filterModeAssisted - && !$('#raw'+subject+'FilterContainer').hasClass('invisible')) { - LdapWizard['toggleRaw'+subject+'Filter'](); - } - }, - function (result) { - //on error case get back to default i.e. Assisted - if(!$('#raw'+subject+'FilterContainer').hasClass('invisible')) { - LdapWizard['toggleRaw'+subject+'Filter'](); - } - } - ); - }, - save: function(inputObj) { if(LdapWizard.blacklistRemove(inputObj.id)) { return; @@ -713,15 +757,15 @@ var LdapWizard = { LdapWizard._save($('#'+originalObj)[0], $.trim(values)); if(originalObj == 'ldap_userfilter_objectclass' || originalObj == 'ldap_userfilter_groups') { - LdapWizard.composeFilter('user'); + LdapWizard.userFilter.compose(); //when user filter is changed afterwards, login filter needs to //be adjusted, too - LdapWizard.composeFilter('login'); + LdapWizard.loginFilter.compose(); } else if(originalObj == 'ldap_loginfilter_attributes') { - LdapWizard.composeFilter('login'); + LdapWizard.loginFilter.compose(); } else if(originalObj == 'ldap_groupfilter_objectclass' || originalObj == 'ldap_groupfilter_groups') { - LdapWizard.composeFilter('group'); + LdapWizard.groupFilter.compose(); } }, @@ -777,10 +821,10 @@ var LdapWizard = { LdapWizard._save({ id: modeKey }, LdapWizard.filterModeAssisted); if(moc.indexOf('user') >= 0) { LdapWizard.blacklistRemove('ldap_userlist_filter'); - LdapWizard.composeFilter('user'); + LdapWizard.userFilter.compose(); } else { LdapWizard.blacklistRemove('ldap_group_filter'); - LdapWizard.composeFilter('group'); + LdapWizard.groupFilter.compose(); } } }, @@ -814,7 +858,7 @@ var LdapWizard = { $('#ldap_loginfilter_username').prop('disabled', property); LdapWizard._save({ id: 'ldapLoginFilterMode' }, mode); if(action == 'enable') { - LdapWizard.composeFilter('login'); + LdapWizard.loginFilter.compose(); } }, From ef65381a0b41a1d6519e7d5bf39d3aac75127a1e Mon Sep 17 00:00:00 2001 From: ben-denham Date: Fri, 7 Mar 2014 10:10:42 +1300 Subject: [PATCH 2/6] Moved LdapFilter into a separate js file in user_ldap. --- apps/user_ldap/js/ldapFilter.js | 95 +++++++++++++++++++++++++++++ apps/user_ldap/js/settings.js | 102 -------------------------------- apps/user_ldap/settings.php | 1 + 3 files changed, 96 insertions(+), 102 deletions(-) create mode 100644 apps/user_ldap/js/ldapFilter.js diff --git a/apps/user_ldap/js/ldapFilter.js b/apps/user_ldap/js/ldapFilter.js new file mode 100644 index 0000000000..71f8cd6c7c --- /dev/null +++ b/apps/user_ldap/js/ldapFilter.js @@ -0,0 +1,95 @@ +function LdapFilter(target) { + this.locked = true; + this.target = false; + this.mode = LdapWizard.filterModeAssisted; + this.lazyRunCompose = false; + + if( target === 'User' || + target === 'Login' || + target === 'Group') { + this.target = target; + this.determineMode(); + } +} + +LdapFilter.prototype.compose = function() { + var action; + + if(this.locked) { + this.lazyRunCompose = true; + return false; + } + + if(this.target === 'User') { + action = 'getUserListFilter'; + } else if(this.target === 'Login') { + action = 'getUserLoginFilter'; + } else if(this.target === 'Group') { + action = 'getGroupFilter'; + } + + if(!$('#raw'+this.target+'FilterContainer').hasClass('invisible')) { + //Raw filter editing, i.e. user defined filter, don't compose + return; + } + + var param = 'action='+action+ + '&ldap_serverconfig_chooser='+ + encodeURIComponent($('#ldap_serverconfig_chooser').val()); + + var filter = this; + + LdapWizard.ajax(param, + function(result) { + LdapWizard.applyChanges(result); + if(filter.target === 'User') { + LdapWizard.countUsers(); + } else if(filter.target === 'Group') { + LdapWizard.countGroups(); + LdapWizard.detectGroupMemberAssoc(); + } + }, + function (result) { + // error handling + } + ); +} + +LdapFilter.prototype.determineMode = function() { + var param = 'action=get'+encodeURIComponent(this.target)+'FilterMode'+ + '&ldap_serverconfig_chooser='+ + encodeURIComponent($('#ldap_serverconfig_chooser').val()); + + var filter = this; + LdapWizard.ajax(param, + function(result) { + property = 'ldap' + filter.target + 'FilterMode'; + filter.mode = result.changes[property]; + if(filter.mode == LdapWizard.filterModeRaw + && $('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { + LdapWizard['toggleRaw'+filter.target+'Filter'](); + } else if(filter.mode == LdapWizard.filterModeAssisted + && !$('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { + LdapWizard['toggleRaw'+filter.target+'Filter'](); + } + filter.unlock(); + }, + function (result) { + //on error case get back to default i.e. Assisted + if(!$('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { + LdapWizard['toggleRaw'+filter.target+'Filter'](); + filter.mode = LdapWizard.filterModeAssisted; + } + filter.unlock(); + } + ); + +} + +LdapFilter.prototype.unlock = function() { + this.locked = false; + if(this.lazyRunCompose) { + this.lazyRunCompose = false; + this.compose(); + } +} diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js index 0470ee079f..57f61b7d68 100644 --- a/apps/user_ldap/js/settings.js +++ b/apps/user_ldap/js/settings.js @@ -138,108 +138,6 @@ var LdapConfiguration = { } }; - -// LdapFilter object. - -function LdapFilter(target) { - this.locked = true; - this.target = false; - this.mode = LdapWizard.filterModeAssisted; - this.lazyRunCompose = false; - - if( target === 'User' || - target === 'Login' || - target === 'Group') { - this.target = target; - this.determineMode(); - } -} - -LdapFilter.prototype.compose = function() { - var action; - - if(this.locked) { - this.lazyRunCompose = true; - return false; - } - - if(this.target === 'User') { - action = 'getUserListFilter'; - } else if(this.target === 'Login') { - action = 'getUserLoginFilter'; - } else if(this.target === 'Group') { - action = 'getGroupFilter'; - } - - if(!$('#raw'+this.target+'FilterContainer').hasClass('invisible')) { - //Raw filter editing, i.e. user defined filter, don't compose - return; - } - - var param = 'action='+action+ - '&ldap_serverconfig_chooser='+ - encodeURIComponent($('#ldap_serverconfig_chooser').val()); - - var filter = this; - - LdapWizard.ajax(param, - function(result) { - LdapWizard.applyChanges(result); - if(filter.target === 'User') { - LdapWizard.countUsers(); - } else if(filter.target === 'Group') { - LdapWizard.countGroups(); - LdapWizard.detectGroupMemberAssoc(); - } - }, - function (result) { - // error handling - } - ); -} - -LdapFilter.prototype.determineMode = function() { - var param = 'action=get'+encodeURIComponent(this.target)+'FilterMode'+ - '&ldap_serverconfig_chooser='+ - encodeURIComponent($('#ldap_serverconfig_chooser').val()); - - var filter = this; - LdapWizard.ajax(param, - function(result) { - property = 'ldap' + filter.target + 'FilterMode'; - filter.mode = result.changes[property]; - if(filter.mode == LdapWizard.filterModeRaw - && $('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { - LdapWizard['toggleRaw'+filter.target+'Filter'](); - } else if(filter.mode == LdapWizard.filterModeAssisted - && !$('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { - LdapWizard['toggleRaw'+filter.target+'Filter'](); - } - filter.unlock(); - }, - function (result) { - //on error case get back to default i.e. Assisted - if(!$('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { - LdapWizard['toggleRaw'+filter.target+'Filter'](); - filter.mode = LdapWizard.filterModeAssisted; - } - filter.unlock(); - } - ); - -} - -LdapFilter.prototype.unlock = function() { - this.locked = false; - if(this.lazyRunCompose) { - this.lazyRunCompose = false; - this.compose(); - } -} - -// end of LdapFilter object. - - var LdapWizard = { checkPortInfoShown: false, saveBlacklist: {}, diff --git a/apps/user_ldap/settings.php b/apps/user_ldap/settings.php index d077eafdde..6b7d8e6f53 100644 --- a/apps/user_ldap/settings.php +++ b/apps/user_ldap/settings.php @@ -25,6 +25,7 @@ OC_Util::checkAdminUser(); +OCP\Util::addScript('user_ldap', 'ldapFilter'); OCP\Util::addScript('user_ldap', 'settings'); OCP\Util::addScript('core', 'jquery.multiselect'); OCP\Util::addStyle('user_ldap', 'settings'); From 8a8a32cf43efad6fdb2089097cb7fadbe0472456 Mon Sep 17 00:00:00 2001 From: ben-denham Date: Fri, 14 Mar 2014 09:17:39 +1300 Subject: [PATCH 3/6] Changed conditions in user_ldap's ldapFilter.js to use ===, fixed indentation. --- apps/user_ldap/js/ldapFilter.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/user_ldap/js/ldapFilter.js b/apps/user_ldap/js/ldapFilter.js index 71f8cd6c7c..70f24f0d4a 100644 --- a/apps/user_ldap/js/ldapFilter.js +++ b/apps/user_ldap/js/ldapFilter.js @@ -65,10 +65,10 @@ LdapFilter.prototype.determineMode = function() { function(result) { property = 'ldap' + filter.target + 'FilterMode'; filter.mode = result.changes[property]; - if(filter.mode == LdapWizard.filterModeRaw + if(filter.mode === LdapWizard.filterModeRaw && $('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { LdapWizard['toggleRaw'+filter.target+'Filter'](); - } else if(filter.mode == LdapWizard.filterModeAssisted + } else if(filter.mode === LdapWizard.filterModeAssisted && !$('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { LdapWizard['toggleRaw'+filter.target+'Filter'](); } @@ -80,7 +80,7 @@ LdapFilter.prototype.determineMode = function() { LdapWizard['toggleRaw'+filter.target+'Filter'](); filter.mode = LdapWizard.filterModeAssisted; } - filter.unlock(); + filter.unlock(); } ); From e28227ecdc0f898868701fe131326d8c15ef60d7 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Fri, 11 Apr 2014 13:56:06 +0200 Subject: [PATCH 4/6] fix comparison in determineMode, fixes problems with restoring the filter mode (assisted or manually) on page refresh --- apps/user_ldap/js/ldapFilter.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/user_ldap/js/ldapFilter.js b/apps/user_ldap/js/ldapFilter.js index 70f24f0d4a..d0fee6db7f 100644 --- a/apps/user_ldap/js/ldapFilter.js +++ b/apps/user_ldap/js/ldapFilter.js @@ -64,13 +64,16 @@ LdapFilter.prototype.determineMode = function() { LdapWizard.ajax(param, function(result) { property = 'ldap' + filter.target + 'FilterMode'; - filter.mode = result.changes[property]; + filter.mode = parseInt(result.changes[property]); if(filter.mode === LdapWizard.filterModeRaw && $('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { LdapWizard['toggleRaw'+filter.target+'Filter'](); } else if(filter.mode === LdapWizard.filterModeAssisted && !$('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { LdapWizard['toggleRaw'+filter.target+'Filter'](); + } else { + console.log('LDAP Wizard determineMode: returned mode was »' + + filter.mode + '« of type ' + typeof filter.mode); } filter.unlock(); }, From 1c57ffa16fab8cfb132978865d819e98cb143a24 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Fri, 11 Apr 2014 14:08:12 +0200 Subject: [PATCH 5/6] Give hint when composing filter failed --- apps/user_ldap/js/ldapFilter.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/user_ldap/js/ldapFilter.js b/apps/user_ldap/js/ldapFilter.js index d0fee6db7f..0d69164794 100644 --- a/apps/user_ldap/js/ldapFilter.js +++ b/apps/user_ldap/js/ldapFilter.js @@ -50,7 +50,8 @@ LdapFilter.prototype.compose = function() { } }, function (result) { - // error handling + console.log('LDAP Wizard: could not compose filter. '+ + 'Please check owncloud.log'); } ); } From e0cac32442af1986d2a202ec708fce8d537bb12c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Wed, 23 Apr 2014 10:08:14 +0200 Subject: [PATCH 6/6] fixing some JSHint warnings --- apps/user_ldap/js/ldapFilter.js | 25 +++++++++++++------------ apps/user_ldap/js/settings.js | 10 +++++----- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/apps/user_ldap/js/ldapFilter.js b/apps/user_ldap/js/ldapFilter.js index 0d69164794..df3bd67aec 100644 --- a/apps/user_ldap/js/ldapFilter.js +++ b/apps/user_ldap/js/ldapFilter.js @@ -1,3 +1,5 @@ +/* global LdapWizard */ + function LdapFilter(target) { this.locked = true; this.target = false; @@ -49,12 +51,12 @@ LdapFilter.prototype.compose = function() { LdapWizard.detectGroupMemberAssoc(); } }, - function (result) { + function () { console.log('LDAP Wizard: could not compose filter. '+ 'Please check owncloud.log'); } ); -} +}; LdapFilter.prototype.determineMode = function() { var param = 'action=get'+encodeURIComponent(this.target)+'FilterMode'+ @@ -64,13 +66,13 @@ LdapFilter.prototype.determineMode = function() { var filter = this; LdapWizard.ajax(param, function(result) { - property = 'ldap' + filter.target + 'FilterMode'; - filter.mode = parseInt(result.changes[property]); - if(filter.mode === LdapWizard.filterModeRaw - && $('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { + var property = 'ldap' + filter.target + 'FilterMode'; + filter.mode = parseInt(result.changes[property], 10); + if(filter.mode === LdapWizard.filterModeRaw && + $('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { LdapWizard['toggleRaw'+filter.target+'Filter'](); - } else if(filter.mode === LdapWizard.filterModeAssisted - && !$('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { + } else if(filter.mode === LdapWizard.filterModeAssisted && + !$('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { LdapWizard['toggleRaw'+filter.target+'Filter'](); } else { console.log('LDAP Wizard determineMode: returned mode was »' + @@ -78,7 +80,7 @@ LdapFilter.prototype.determineMode = function() { } filter.unlock(); }, - function (result) { + function () { //on error case get back to default i.e. Assisted if(!$('#raw'+filter.target+'FilterContainer').hasClass('invisible')) { LdapWizard['toggleRaw'+filter.target+'Filter'](); @@ -87,8 +89,7 @@ LdapFilter.prototype.determineMode = function() { filter.unlock(); } ); - -} +}; LdapFilter.prototype.unlock = function() { this.locked = false; @@ -96,4 +97,4 @@ LdapFilter.prototype.unlock = function() { this.lazyRunCompose = false; this.compose(); } -} +}; diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js index 80e0857239..fca2dc13d1 100644 --- a/apps/user_ldap/js/settings.js +++ b/apps/user_ldap/js/settings.js @@ -14,7 +14,7 @@ var LdapConfiguration = { //deal with Checkboxes if($(elementID).is('input[type=checkbox]')) { - if(parseInt(configvalue) === 1) { + if(parseInt(configvalue, 10) === 1) { $(elementID).attr('checked', 'checked'); } else { $(elementID).removeAttr('checked'); @@ -478,7 +478,7 @@ var LdapWizard = { }, functionalityCheck: function() { - //criterias to enable the connection: + //criteria to enable the connection: // - host, port, basedn, user filter, login filter host = $('#ldap_host').val(); port = $('#ldap_port').val(); @@ -556,7 +556,7 @@ var LdapWizard = { noneSelectedText: caption, click: function(event, ui) { LdapWizard.saveMultiSelect(id, - $('#'+id).multiselect("getChecked")); + $('#'+id).multiselect("getChecked")); } }); }, @@ -575,8 +575,8 @@ var LdapWizard = { }, postInitUserFilter: function() { - if(LdapWizard.userFilterObjectClassesHasRun - && LdapWizard.userFilterAvailableGroupsHasRun) { + if(LdapWizard.userFilterObjectClassesHasRun && + LdapWizard.userFilterAvailableGroupsHasRun) { LdapWizard.userFilter.compose(); LdapWizard.countUsers(); }