From fe24a0be919653d9e502f7729d9a804f2e28435d Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 07 Dec 2011 19:33:10 -0500 Subject: [PATCH] Teams support. --- src/com/gitblit/models/UserModel.java | 25 +++++++++++++++++++++++-- 1 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/com/gitblit/models/UserModel.java b/src/com/gitblit/models/UserModel.java index 8c99512..bd8974d 100644 --- a/src/com/gitblit/models/UserModel.java +++ b/src/com/gitblit/models/UserModel.java @@ -40,6 +40,7 @@ public boolean canAdmin; public boolean excludeFromFederation; public final Set<String> repositories = new HashSet<String>(); + public final Set<TeamModel> teams = new HashSet<TeamModel>(); public UserModel(String username) { this.username = username; @@ -54,13 +55,24 @@ */ @Deprecated public boolean canAccessRepository(String repositoryName) { - return canAdmin || repositories.contains(repositoryName.toLowerCase()); + return canAdmin || repositories.contains(repositoryName.toLowerCase()) + || hasTeamAccess(repositoryName); } public boolean canAccessRepository(RepositoryModel repository) { boolean isOwner = !StringUtils.isEmpty(repository.owner) && repository.owner.equals(username); - return canAdmin || isOwner || repositories.contains(repository.name.toLowerCase()); + return canAdmin || isOwner || repositories.contains(repository.name.toLowerCase()) + || hasTeamAccess(repository.name); + } + + public boolean hasTeamAccess(String repositoryName) { + for (TeamModel team : teams) { + if (team.hasRepository(repositoryName)) { + return true; + } + } + return false; } public boolean hasRepository(String name) { @@ -75,6 +87,15 @@ repositories.remove(name.toLowerCase()); } + public boolean isTeamMember(String teamname) { + for (TeamModel team : teams) { + if (team.name.equalsIgnoreCase(teamname)) { + return true; + } + } + return false; + } + @Override public String getName() { return username; -- Gitblit v1.9.1