James Moger
2013-01-03 eee533b4583854b9c875221f1c1f50dfb092868d
src/com/gitblit/FileUserService.java
@@ -329,8 +329,7 @@
         UserModel oldUser = getUserModel(username);
         List<String> roles;
         if (model.permissions == null) {
            // legacy, use repository list
            roles = new ArrayList<String>(model.repositories);
            roles = new ArrayList<String>();
         } else {
            // discrete repository permissions
            roles = new ArrayList<String>();
@@ -780,10 +779,27 @@
                  } else if (role.charAt(0) == '%') {
                     postReceive.add(role.substring(1));
                  } else {
                     switch (role.charAt(0)) {
                     case '#':
                        // Permissions
                        if (role.equalsIgnoreCase(Constants.ADMIN_ROLE)) {
                           team.canAdmin = true;
                        } else if (role.equalsIgnoreCase(Constants.FORK_ROLE)) {
                           team.canFork = true;
                        } else if (role.equalsIgnoreCase(Constants.CREATE_ROLE)) {
                           team.canCreate = true;
                        }
                        break;
                     default:
                        repositories.add(role);
                     }
                     repositories.add(role);
                  }
               }
               team.addRepositoryPermissions(repositories);
               if (!team.canAdmin) {
                  // only read permissions for non-admin teams
                  team.addRepositoryPermissions(repositories);
               }
               team.addUsers(users);
               team.addMailingLists(mailingLists);
               team.preReceiveScripts.addAll(preReceive);
@@ -1040,6 +1056,17 @@
         }
      }
      
      // Permissions
      if (model.canAdmin) {
         roles.add(Constants.ADMIN_ROLE);
      }
      if (model.canFork) {
         roles.add(Constants.FORK_ROLE);
      }
      if (model.canCreate) {
         roles.add(Constants.CREATE_ROLE);
      }
      for (String role : roles) {
            sb.append(role);
            sb.append(',');