From 30f9d25d77ccb5cd978d4cf8fa389ec819e90e95 Mon Sep 17 00:00:00 2001 From: Philip L. McMahon <philip.l.mcmahon@gmail.com> Date: Fri, 27 Jan 2012 02:02:19 -0500 Subject: [PATCH] Correct update of HEAD symbolic reference when target is a tag. --- src/com/gitblit/FileUserService.java | 61 ++++++++++++++++++------------ 1 files changed, 36 insertions(+), 25 deletions(-) diff --git a/src/com/gitblit/FileUserService.java b/src/com/gitblit/FileUserService.java index 9c4e507..dfc4da8 100644 --- a/src/com/gitblit/FileUserService.java +++ b/src/com/gitblit/FileUserService.java @@ -33,6 +33,7 @@ import com.gitblit.models.TeamModel; import com.gitblit.models.UserModel; +import com.gitblit.utils.ArrayUtils; import com.gitblit.utils.DeepCopier; import com.gitblit.utils.StringUtils; @@ -164,11 +165,11 @@ @Override public UserModel getUserModel(String username) { Properties allUsers = read(); - String userInfo = allUsers.getProperty(username); + String userInfo = allUsers.getProperty(username.toLowerCase()); if (userInfo == null) { return null; } - UserModel model = new UserModel(username); + UserModel model = new UserModel(username.toLowerCase()); String[] userValues = userInfo.split(","); model.password = userValues[0]; for (int i = 1; i < userValues.length; i++) { @@ -218,7 +219,7 @@ */ @Override public boolean updateUserModel(String username, UserModel model) { - try { + try { Properties allUsers = read(); UserModel oldUser = getUserModel(username); ArrayList<String> roles = new ArrayList<String>(model.repositories); @@ -240,8 +241,8 @@ } // trim trailing comma sb.setLength(sb.length() - 1); - allUsers.remove(username); - allUsers.put(model.username, sb.toString()); + allUsers.remove(username.toLowerCase()); + allUsers.put(model.username.toLowerCase(), sb.toString()); // null check on "final" teams because JSON-sourced UserModel // can have a null teams object @@ -660,7 +661,7 @@ } else { // user definition String password = roles[0]; - cookies.put(StringUtils.getSHA1(username + password), username); + cookies.put(StringUtils.getSHA1(username.toLowerCase() + password), username.toLowerCase()); } } } @@ -868,29 +869,39 @@ private void updateTeamCache(Properties allUsers, String teamname, TeamModel model) { StringBuilder sb = new StringBuilder(); - for (String repository : model.repositories) { - sb.append(repository); - sb.append(','); + if (!ArrayUtils.isEmpty(model.repositories)) { + for (String repository : model.repositories) { + sb.append(repository); + sb.append(','); + } } - for (String user : model.users) { - sb.append('!'); - sb.append(user); - sb.append(','); + if (!ArrayUtils.isEmpty(model.users)) { + for (String user : model.users) { + sb.append('!'); + sb.append(user); + sb.append(','); + } } - for (String address : model.mailingLists) { - sb.append('&'); - sb.append(address); - sb.append(','); + if (!ArrayUtils.isEmpty(model.mailingLists)) { + for (String address : model.mailingLists) { + sb.append('&'); + sb.append(address); + sb.append(','); + } } - for (String script : model.preReceiveScripts) { - sb.append('^'); - sb.append(script); - sb.append(','); + if (!ArrayUtils.isEmpty(model.preReceiveScripts)) { + for (String script : model.preReceiveScripts) { + sb.append('^'); + sb.append(script); + sb.append(','); + } } - for (String script : model.postReceiveScripts) { - sb.append('%'); - sb.append(script); - sb.append(','); + if (!ArrayUtils.isEmpty(model.postReceiveScripts)) { + for (String script : model.postReceiveScripts) { + sb.append('%'); + sb.append(script); + sb.append(','); + } } // trim trailing comma sb.setLength(sb.length() - 1); -- Gitblit v1.9.1