From 92d477ebb639fde958a928f0ed046c62280a5c60 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 06 Dec 2012 17:05:15 -0500
Subject: [PATCH] Fixed anonymous browsing of branch panel
---
src/com/gitblit/wicket/panels/BranchesPanel.java | 4 ++--
src/com/gitblit/models/UserModel.java | 7 +++++++
src/com/gitblit/wicket/pages/RepositoryPage.java | 2 +-
3 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/com/gitblit/models/UserModel.java b/src/com/gitblit/models/UserModel.java
index f1bc5ef..ac67ff7 100644
--- a/src/com/gitblit/models/UserModel.java
+++ b/src/com/gitblit/models/UserModel.java
@@ -360,6 +360,12 @@
public boolean canView(RepositoryModel repository) {
return canAccess(repository, AccessRestrictionType.VIEW, AccessPermission.VIEW);
}
+
+ public boolean canView(RepositoryModel repository, String ref) {
+ // Default UserModel doesn't implement ref-level security.
+ // Other Realms (i.e. Gerrit) may override this method.
+ return canView(repository);
+ }
public boolean canClone(RepositoryModel repository) {
return canAccess(repository, AccessRestrictionType.CLONE, AccessPermission.CLONE);
@@ -587,6 +593,7 @@
return nameVerified && emailVerified;
}
+ @Deprecated
public boolean hasBranchPermission(String repositoryName, String branch) {
// Default UserModel doesn't implement branch-level security. Other Realms (i.e. Gerrit) may override this method.
return hasRepositoryPermission(repositoryName) || hasTeamRepositoryPermission(repositoryName);
diff --git a/src/com/gitblit/wicket/pages/RepositoryPage.java b/src/com/gitblit/wicket/pages/RepositoryPage.java
index 3acf73a..b4e1a0e 100644
--- a/src/com/gitblit/wicket/pages/RepositoryPage.java
+++ b/src/com/gitblit/wicket/pages/RepositoryPage.java
@@ -112,7 +112,7 @@
// workaround until get().getUser() is reviewed throughout the app
user = UserModel.ANONYMOUS;
}
- boolean canAccess = user.hasBranchPermission(repositoryName,
+ boolean canAccess = user.canView(getRepositoryModel(),
branch.reference.getName());
if (!canAccess) {
error(getString("gb.accessDenied"), true);
diff --git a/src/com/gitblit/wicket/panels/BranchesPanel.java b/src/com/gitblit/wicket/panels/BranchesPanel.java
index 26fedc1..1262077 100644
--- a/src/com/gitblit/wicket/panels/BranchesPanel.java
+++ b/src/com/gitblit/wicket/panels/BranchesPanel.java
@@ -67,14 +67,14 @@
List<RefModel> localBranches = JGitUtils.getLocalBranches(r, false, -1);
for (RefModel refModel : localBranches) {
- if (user.hasBranchPermission(model.name, refModel.reference.getName())) {
+ if (user.canView(model, refModel.reference.getName())) {
branches.add(refModel);
}
}
if (model.showRemoteBranches) {
List<RefModel> remoteBranches = JGitUtils.getRemoteBranches(r, false, -1);
for (RefModel refModel : remoteBranches) {
- if (user.hasBranchPermission(model.name, refModel.reference.getName())) {
+ if (user.canView(model, refModel.reference.getName())) {
branches.add(refModel);
}
}
--
Gitblit v1.9.1