From 9da9764c5073118fc3b46bb360e1071426a9b9f4 Mon Sep 17 00:00:00 2001 From: Luca Milanesio Date: Sun, 2 Dec 2012 08:52:28 +0000 Subject: [PATCH] Branch display filtering according to user access permissions. --- .../gitblit/wicket/panels/BranchesPanel.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/com/gitblit/wicket/panels/BranchesPanel.java b/src/com/gitblit/wicket/panels/BranchesPanel.java index cfe9f5fe..956e3494 100644 --- a/src/com/gitblit/wicket/panels/BranchesPanel.java +++ b/src/com/gitblit/wicket/panels/BranchesPanel.java @@ -36,8 +36,10 @@ import com.gitblit.GitBlit; import com.gitblit.SyndicationServlet; import com.gitblit.models.RefModel; import com.gitblit.models.RepositoryModel; +import com.gitblit.models.UserModel; import com.gitblit.utils.JGitUtils; import com.gitblit.utils.StringUtils; +import com.gitblit.wicket.GitBlitWebSession; import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.pages.BranchesPage; import com.gitblit.wicket.pages.CommitPage; @@ -58,9 +60,21 @@ public class BranchesPanel extends BasePanel { // branches List branches = new ArrayList(); - branches.addAll(JGitUtils.getLocalBranches(r, false, maxCount)); + UserModel user = GitBlitWebSession.get().getUser(); + + List localBranches = JGitUtils.getLocalBranches(r, false, maxCount); + for (RefModel refModel : localBranches) { + if (user.hasBranchPermission(model.name, refModel.reference.getName())) { + branches.add(refModel); + } + } if (model.showRemoteBranches) { - branches.addAll(JGitUtils.getRemoteBranches(r, false, maxCount)); + List remoteBranches = JGitUtils.getRemoteBranches(r, false, maxCount); + for (RefModel refModel : remoteBranches) { + if (user.hasBranchPermission(model.name, refModel.reference.getName())) { + branches.add(refModel); + } + } } Collections.sort(branches); Collections.reverse(branches); -- 2.39.5