[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