diff options
Diffstat (limited to 'src/com/gitblit/FileUserService.java')
-rw-r--r-- | src/com/gitblit/FileUserService.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/com/gitblit/FileUserService.java b/src/com/gitblit/FileUserService.java index c06266dc..d411b68f 100644 --- a/src/com/gitblit/FileUserService.java +++ b/src/com/gitblit/FileUserService.java @@ -780,6 +780,20 @@ public class FileUserService extends FileSettings implements IUserService { } 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);
}
}
@@ -1040,6 +1054,17 @@ public class FileUserService extends FileSettings implements IUserService { }
}
+ // 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(',');
|