James Moger
2012-11-01 b701ed7c4e138c4aaa3acb029f6e35fdf01388e4
src/com/gitblit/ConfigUserService.java
@@ -841,7 +841,7 @@
         config.setStringList(USER, model.username, ROLE, roles);
         // discrete repository permissions
         if (model.permissions != null) {
         if (model.permissions != null && !model.canAdmin) {
            List<String> permissions = new ArrayList<String>();
            for (Map.Entry<String, AccessPermission> entry : model.permissions.entrySet()) {
               if (entry.getValue().exceeds(AccessPermission.NONE)) {
@@ -872,6 +872,8 @@
         }
         config.setStringList(TEAM, model.name, ROLE, roles);
         
         if (!model.canAdmin) {
            // write team permission for non-admin teams
         if (model.permissions == null) {
            // null check on "final" repositories because JSON-sourced TeamModel
            // can have a null repositories object
@@ -889,6 +891,7 @@
               }
            }
            config.setStringList(TEAM, model.name, REPOSITORY, permissions);
            }
         }
         // null check on "final" users because JSON-sourced TeamModel
@@ -975,10 +978,13 @@
               user.excludeFromFederation = roles.contains(Constants.NOT_FEDERATED_ROLE);
               // repository memberships
               if (!user.canAdmin) {
                  // non-admin, read permissions
               Set<String> repositories = new HashSet<String>(Arrays.asList(config
                     .getStringList(USER, username, REPOSITORY)));
               for (String repository : repositories) {
                  user.addRepositoryPermission(repository);
                  }
               }
               // update cache
@@ -998,8 +1004,11 @@
               team.canFork = roles.contains(Constants.FORK_ROLE);
               team.canCreate = roles.contains(Constants.CREATE_ROLE);
               
               if (!team.canAdmin) {
                  // non-admin team, read permissions
               team.addRepositoryPermissions(Arrays.asList(config.getStringList(TEAM, teamname,
                     REPOSITORY)));
               }
               team.addUsers(Arrays.asList(config.getStringList(TEAM, teamname, USER)));
               team.addMailingLists(Arrays.asList(config.getStringList(TEAM, teamname,
                     MAILINGLIST)));