[Pkg-owncloud-commits] [owncloud] 11/49: LDAP Wizard: make sure auto-detected suggestions are really applied initially. Also make initial filter compilation and user counting robust against race conditions.
David Prévot
taffit at moszumanska.debian.org
Thu Dec 5 16:02:52 UTC 2013
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository owncloud.
commit 67b67b6d668ef447a414651f4b68fc869b31a350
Author: Arthur Schiwon <blizzz at owncloud.com>
Date: Tue Dec 3 13:27:45 2013 +0100
LDAP Wizard: make sure auto-detected suggestions are really applied initially. Also make initial filter compilation and user counting robust against race conditions.
---
apps/user_ldap/js/settings.js | 57 ++++++++++++++++++++++++++++++++++++++++---
1 file changed, 54 insertions(+), 3 deletions(-)
diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js
index 5b5f203..9e9a8e5 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,19 @@ var LdapWizard = {
LdapWizard.countGroups();
},
+ /** init login filter tab section **/
+
initLoginFilter: function() {
LdapWizard.regardFilterMode('Login');
LdapWizard.findAttributes();
},
+ postInitLoginFilter: function() {
+ LdapWizard.composeFilter('login');
+ },
+
+ /** end of init user filter tab section **/
+
initMultiSelect: function(object, id, caption) {
object.multiselect({
header: false,
@@ -546,13 +583,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 +672,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) {
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git
More information about the Pkg-owncloud-commits
mailing list