From 9effe1630d97039b3e01cd9b58ed07e75be1d63c Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 25 Feb 2013 08:40:30 -0500 Subject: [PATCH] Merge pull request #75 from thefake/master --- src/com/gitblit/wicket/panels/BranchesPanel.java | 29 +++++++++++++++++++++++++++-- 1 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/com/gitblit/wicket/panels/BranchesPanel.java b/src/com/gitblit/wicket/panels/BranchesPanel.java index 3ca02cb..1262077 100644 --- a/src/com/gitblit/wicket/panels/BranchesPanel.java +++ b/src/com/gitblit/wicket/panels/BranchesPanel.java @@ -36,8 +36,10 @@ 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,24 @@ // branches List<RefModel> branches = new ArrayList<RefModel>(); - branches.addAll(JGitUtils.getLocalBranches(r, false, maxCount)); + UserModel user = GitBlitWebSession.get().getUser(); + if (user == null) { + user = UserModel.ANONYMOUS; + } + + List<RefModel> localBranches = JGitUtils.getLocalBranches(r, false, -1); + for (RefModel refModel : localBranches) { + if (user.canView(model, refModel.reference.getName())) { + branches.add(refModel); + } + } if (model.showRemoteBranches) { - branches.addAll(JGitUtils.getRemoteBranches(r, false, maxCount)); + List<RefModel> remoteBranches = JGitUtils.getRemoteBranches(r, false, -1); + for (RefModel refModel : remoteBranches) { + if (user.canView(model, refModel.reference.getName())) { + branches.add(refModel); + } + } } Collections.sort(branches); Collections.reverse(branches); @@ -166,6 +183,14 @@ @Override public void onClick() { Repository r = GitBlit.self().getRepository(repositoryModel.name); + if (r == null) { + if (GitBlit.self().isCollectingGarbage(repositoryModel.name)) { + error(MessageFormat.format(getString("gb.busyCollectingGarbage"), repositoryModel.name)); + } else { + error(MessageFormat.format("Failed to find repository {0}", repositoryModel.name)); + } + return; + } boolean success = JGitUtils.deleteBranchRef(r, entry.getName()); r.close(); if (success) { -- Gitblit v1.9.1