From 2d48e28bf1068b20129b2e3d5b96ecaff48f9f2f Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 23 Oct 2012 22:27:56 -0400 Subject: [PATCH] Implemented exclusion (X) permission --- src/com/gitblit/client/GitblitClient.java | 28 +++++++++++++++++++++++----- 1 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/com/gitblit/client/GitblitClient.java b/src/com/gitblit/client/GitblitClient.java index 9815cbe..4620fef 100644 --- a/src/com/gitblit/client/GitblitClient.java +++ b/src/com/gitblit/client/GitblitClient.java @@ -28,17 +28,19 @@ import java.util.TreeSet; import com.gitblit.Constants; +import com.gitblit.Constants.AccessPermission; import com.gitblit.Constants.AccessRestrictionType; import com.gitblit.Constants.AuthorizationControl; +import com.gitblit.Constants.RegistrantType; import com.gitblit.GitBlitException.ForbiddenException; import com.gitblit.GitBlitException.NotAllowedException; import com.gitblit.GitBlitException.UnauthorizedException; import com.gitblit.GitBlitException.UnknownRequestException; import com.gitblit.Keys; -import com.gitblit.models.RegistrantAccessPermission; import com.gitblit.models.FederationModel; import com.gitblit.models.FeedEntryModel; import com.gitblit.models.FeedModel; +import com.gitblit.models.RegistrantAccessPermission; import com.gitblit.models.RepositoryModel; import com.gitblit.models.ServerSettings; import com.gitblit.models.ServerStatus; @@ -493,8 +495,16 @@ return usernames; } - public List<RegistrantAccessPermission> getUserAccessPermissions(RepositoryModel repository) throws IOException { - return RpcUtils.getRepositoryMemberPermissions(repository, url, account, password); + public List<RegistrantAccessPermission> getUserAccessPermissions(RepositoryModel repository) { + List<RegistrantAccessPermission> list = new ArrayList<RegistrantAccessPermission>(); + for (UserModel user : allUsers) { + if (user.hasRepositoryPermission(repository.name)) { + AccessPermission ap = user.getRepositoryPermission(repository); + boolean isExplicit = user.hasExplicitRepositoryPermission(repository.name); + list.add(new RegistrantAccessPermission(user.username, ap, isExplicit, RegistrantType.USER)); + } + } + return list; } public boolean setUserAccessPermissions(RepositoryModel repository, List<RegistrantAccessPermission> permissions) throws IOException { @@ -524,8 +534,16 @@ return teamnames; } - public List<RegistrantAccessPermission> getTeamAccessPermissions(RepositoryModel repository) throws IOException { - return RpcUtils.getRepositoryTeamPermissions(repository, url, account, password); + public List<RegistrantAccessPermission> getTeamAccessPermissions(RepositoryModel repository) { + List<RegistrantAccessPermission> list = new ArrayList<RegistrantAccessPermission>(); + for (TeamModel team : allTeams) { + if (team.hasRepositoryPermission(repository.name)) { + AccessPermission ap = team.getRepositoryPermission(repository); + boolean isExplicit = team.hasExplicitRepositoryPermission(repository.name); + list.add(new RegistrantAccessPermission(team.name, ap, isExplicit, RegistrantType.TEAM)); + } + } + return list; } public boolean setTeamAccessPermissions(RepositoryModel repository, List<RegistrantAccessPermission> permissions) throws IOException { -- Gitblit v1.9.1