summaryrefslogtreecommitdiffstats
path: root/src/com/gitblit/FileUserService.java
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2012-10-10 22:29:36 -0400
committerJames Moger <james.moger@gitblit.com>2012-10-10 22:29:36 -0400
commit7f70511e9a13f4801e4e941affad6fc7b579c79d (patch)
treea63a3594344642d16b82ad99ac65f3f19d51aa9d /src/com/gitblit/FileUserService.java
parent58e7ec808177e53981792b1489695a51d2c91fe5 (diff)
downloadgitblit-7f70511e9a13f4801e4e941affad6fc7b579c79d.tar.gz
gitblit-7f70511e9a13f4801e4e941affad6fc7b579c79d.zip
Support Team canAdmin, canCreate, and canFork (issue 36)
Diffstat (limited to 'src/com/gitblit/FileUserService.java')
-rw-r--r--src/com/gitblit/FileUserService.java25
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(',');