From e2013b91626a4c693053e9859add68ff371f2298 Mon Sep 17 00:00:00 2001 From: mschaefers <mschaefers@scoop-gmbh.de> Date: Fri, 30 Nov 2012 04:29:51 -0500 Subject: [PATCH] significantly reduce write operations to backing user system. --- src/com/gitblit/LdapUserService.java | 23 +++++++++++++---------- 1 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/com/gitblit/LdapUserService.java b/src/com/gitblit/LdapUserService.java index 8da0ca3..b5d87a6 100644 --- a/src/com/gitblit/LdapUserService.java +++ b/src/com/gitblit/LdapUserService.java @@ -24,6 +24,9 @@ import java.util.List; import java.util.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import com.gitblit.models.TeamModel; import com.gitblit.models.UserModel; import com.gitblit.utils.ArrayUtils; @@ -40,8 +43,6 @@ import com.unboundid.ldap.sdk.extensions.StartTLSExtendedRequest; import com.unboundid.util.ssl.SSLUtil; import com.unboundid.util.ssl.TrustAllTrustManager; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * Implementation of an LDAP user service. @@ -122,15 +123,17 @@ } } - for (UserModel user : ldapUsers.values()) { - // Push the ldap looked up values to backing file - super.updateUserModel(user); - if (!supportsTeamMembershipChanges()) { - for (TeamModel userTeam : user.teams) - updateTeamModel(userTeam); - } - } + super.updateUserModels(ldapUsers.values()); + if (!supportsTeamMembershipChanges()) { + final Map<String, TeamModel> userTeams = new HashMap<String, TeamModel>(); + for (UserModel user : ldapUsers.values()) { + for (TeamModel userTeam : user.teams) { + userTeams.put(userTeam.name, userTeam); + } + } + updateTeamModels(userTeams.values()); + } } } finally { ldapConnection.close(); -- Gitblit v1.9.1