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 ea636e4fdd..053079c063 100644 --- a/scm-webapp/src/main/java/sonia/scm/security/ScmRealm.java +++ b/scm-webapp/src/main/java/sonia/scm/security/ScmRealm.java @@ -470,7 +470,35 @@ public class ScmRealm extends AuthorizingRealm for (Repository repository : repositoryDAO.getAll()) { - List repositoryPermissions = repository.getPermissions(); + if (logger.isTraceEnabled()) + { + logger.trace("collect permissions for repository {} and user {}", + repository.getName(), user.getName()); + } + + collectRepositoryPermissions(permissions, repository, user, groups); + } + + return permissions; + } + + /** + * Method description + * + * + * @param permissions + * @param repository + * @param user + * @param groups + */ + private void collectRepositoryPermissions( + List permissions, Repository repository, + User user, Collection groups) + { + List repositoryPermissions = repository.getPermissions(); + + if (Util.isNotEmpty(repositoryPermissions)) + { for (Permission permission : repositoryPermissions) { @@ -492,8 +520,11 @@ public class ScmRealm extends AuthorizingRealm } } } - - return permissions; + else if (logger.isTraceEnabled()) + { + logger.trace("repository {} has not permission entries", + repository.getName()); + } } /**