From 1dda945c4e8f882c953ac09c70bc6af8232a62e1 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 10 Jan 2014 07:58:58 -0500 Subject: [PATCH] Merge pull request #131 from alfsch/master --- src/main/java/com/gitblit/ConfigUserService.java | 16 ++++++++++------ 1 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/gitblit/ConfigUserService.java b/src/main/java/com/gitblit/ConfigUserService.java index c1f0506..19e4736 100644 --- a/src/main/java/com/gitblit/ConfigUserService.java +++ b/src/main/java/com/gitblit/ConfigUserService.java @@ -216,18 +216,22 @@ // null check on "final" teams because JSON-sourced UserModel // can have a null teams object if (model.teams != null) { + Set<TeamModel> userTeams = new HashSet<TeamModel>(); for (TeamModel team : model.teams) { TeamModel t = teams.get(team.name.toLowerCase()); if (t == null) { // new team - team.addUser(model.username); - teams.put(team.name.toLowerCase(), team); - } else { - // do not clobber existing team definition - // maybe because this is a federated user - t.addUser(model.username); + t = team; + teams.put(team.name.toLowerCase(), t); } + // do not clobber existing team definition + // maybe because this is a federated user + t.addUser(model.username); + userTeams.add(t); } + // replace Team-Models in users by new ones. + model.teams.clear(); + model.teams.addAll(userTeams); // check for implicit team removal if (originalUser != null) { -- Gitblit v1.9.1