From 625b59553d02002aa94eca1531baee54da17287e Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 29 Aug 2012 10:18:15 +0200 Subject: [PATCH] grant owner permissions to each repository for admins --- .../src/main/java/sonia/scm/security/ScmRealm.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/security/ScmRealm.java b/scm-webapp/src/main/java/sonia/scm/security/ScmRealm.java index 053079c063..7ad34a9873 100644 --- a/scm-webapp/src/main/java/sonia/scm/security/ScmRealm.java +++ b/scm-webapp/src/main/java/sonia/scm/security/ScmRealm.java @@ -61,6 +61,7 @@ import sonia.scm.config.ScmConfiguration; import sonia.scm.group.Group; import sonia.scm.group.GroupManager; import sonia.scm.repository.Permission; +import sonia.scm.repository.PermissionType; import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryDAO; import sonia.scm.repository.RepositoryListener; @@ -563,6 +564,7 @@ public class ScmRealm extends AuthorizingRealm private AuthorizationInfo createAuthorizationInfo(User user, Groups groups) { Set roles = Sets.newHashSet(); + List permissions = null; roles.add(ROLE_USER); @@ -574,12 +576,17 @@ public class ScmRealm extends AuthorizingRealm } roles.add(ROLE_ADMIN); + permissions = Lists.newArrayList(); + permissions.add(new RepositoryPermission("*", PermissionType.OWNER)); + } + else + { + permissions = collectRepositoryPermissions(user, roles); } SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(roles); - info.addObjectPermissions(collectRepositoryPermissions(user, - groups.getGroups())); + info.addObjectPermissions(permissions); return info; }