From 21ca9d90c6f3b29e4574fe143bbfa7e0ef0b0514 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 14 Jan 2014 10:07:13 -0500 Subject: [PATCH] Updated contributors list --- src/main/java/com/gitblit/auth/LdapAuthProvider.java | 41 +++++++++++++++++++++++------------------ 1 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/gitblit/auth/LdapAuthProvider.java b/src/main/java/com/gitblit/auth/LdapAuthProvider.java index 67d98c7..8fef620 100644 --- a/src/main/java/com/gitblit/auth/LdapAuthProvider.java +++ b/src/main/java/com/gitblit/auth/LdapAuthProvider.java @@ -289,16 +289,17 @@ UserModel user = null; synchronized (this) { user = userManager.getUserModel(simpleUsername); - if (user == null) // create user object for new authenticated user + if (user == null) { + // create user object for new authenticated user user = new UserModel(simpleUsername); - - // create a user cookie - if (StringUtils.isEmpty(user.cookie) && !ArrayUtils.isEmpty(password)) { - user.cookie = StringUtils.getSHA1(user.username + new String(password)); } - if (!supportsTeamMembershipChanges()) + // create a user cookie + setCookie(user, password); + + if (!supportsTeamMembershipChanges()) { getTeamsFromLdap(ldapConnection, simpleUsername, loggingInUser, user); + } // Get User Attributes setUserAttributes(user, loggingInUser); @@ -307,8 +308,9 @@ updateUser(user); if (!supportsTeamMembershipChanges()) { - for (TeamModel userTeam : user.teams) + for (TeamModel userTeam : user.teams) { updateTeam(userTeam); + } } } @@ -337,12 +339,13 @@ if (!ArrayUtils.isEmpty(admins)) { user.canAdmin = false; for (String admin : admins) { - if (admin.startsWith("@")) { // Team - if (user.getTeam(admin.substring(1)) != null) - user.canAdmin = true; - } else - if (user.getName().equalsIgnoreCase(admin)) - user.canAdmin = true; + if (admin.startsWith("@") && user.isTeamMember(admin.substring(1))) { + // admin team + user.canAdmin = true; + } else if (user.getName().equalsIgnoreCase(admin)) { + // admin user + user.canAdmin = true; + } } } } @@ -361,9 +364,9 @@ if (!StringUtils.isEmpty(displayName)) { // Replace embedded ${} with attributes if (displayName.contains("${")) { - for (Attribute userAttribute : userEntry.getAttributes()) + for (Attribute userAttribute : userEntry.getAttributes()) { displayName = StringUtils.replace(displayName, "${" + userAttribute.getName() + "}", userAttribute.getValue()); - + } user.displayName = displayName; } else { Attribute attribute = userEntry.getAttribute(displayName); @@ -377,9 +380,9 @@ String email = settings.getString(Keys.realm.ldap.email, ""); if (!StringUtils.isEmpty(email)) { if (email.contains("${")) { - for (Attribute userAttribute : userEntry.getAttributes()) + for (Attribute userAttribute : userEntry.getAttributes()) { email = StringUtils.replace(email, "${" + userAttribute.getName() + "}", userAttribute.getValue()); - + } user.emailAddress = email; } else { Attribute attribute = userEntry.getAttribute(email); @@ -393,7 +396,9 @@ private void getTeamsFromLdap(LDAPConnection ldapConnection, String simpleUsername, SearchResultEntry loggingInUser, UserModel user) { String loggingInUserDN = loggingInUser.getDN(); - user.teams.clear(); // Clear the users team memberships - we're going to get them from LDAP + // Clear the users team memberships - we're going to get them from LDAP + user.teams.clear(); + String groupBase = settings.getString(Keys.realm.ldap.groupBase, ""); String groupMemberPattern = settings.getString(Keys.realm.ldap.groupMemberPattern, "(&(objectClass=group)(member=${dn}))"); -- Gitblit v1.9.1