From 6b35f8c32de5ebf7bedc429a6ff62709af9d5acd Mon Sep 17 00:00:00 2001
From: Rafael Cavazin <rafaelcavazin@gmail.com>
Date: Fri, 07 Dec 2012 08:24:16 -0500
Subject: [PATCH] Merge remote-tracking branch 'upstream/master' into translation_to_pt-br

---
 src/com/gitblit/GitBlit.java                         |   12 +++++-------
 src/com/gitblit/wicket/GitBlitWebApp.properties      |    3 ++-
 src/com/gitblit/wicket/pages/EditRepositoryPage.java |    6 ++++--
 src/com/gitblit/wicket/panels/ActivityPanel.java     |    4 +---
 src/com/gitblit/utils/ActivityUtils.java             |    4 ++++
 src/com/gitblit/wicket/panels/BranchesPanel.java     |    4 ++--
 src/com/gitblit/client/EditRepositoryDialog.java     |    3 +--
 src/com/gitblit/wicket/panels/ActivityPanel.html     |    2 +-
 src/com/gitblit/models/UserModel.java                |    7 +++++++
 src/com/gitblit/wicket/pages/RepositoryPage.java     |    2 +-
 10 files changed, 28 insertions(+), 19 deletions(-)

diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java
index c2d4a85..46b0d40 100644
--- a/src/com/gitblit/GitBlit.java
+++ b/src/com/gitblit/GitBlit.java
@@ -3044,22 +3044,20 @@
 			ServletContext context = contextEvent.getServletContext();
 			WebXmlSettings webxmlSettings = new WebXmlSettings(context);
 
-			// 0.7.0 web.properties in the deployed war folder
-			String webProps = context.getRealPath("/WEB-INF/web.properties");
+			// gitblit.properties file located within the webapp
+			String webProps = context.getRealPath("/WEB-INF/gitblit.properties");
 			if (!StringUtils.isEmpty(webProps)) {
 				File overrideFile = new File(webProps);
-				if (overrideFile.exists()) {
-					webxmlSettings.applyOverrides(overrideFile);
-				}
+				webxmlSettings.applyOverrides(overrideFile);
 			}
 			
-
-			// 0.8.0 gitblit.properties file located outside the deployed war
+			// gitblit.properties file located outside the deployed war
 			// folder lie, for example, on RedHat OpenShift.
 			File overrideFile = getFileOrFolder("gitblit.properties");
 			if (!overrideFile.getPath().equals("gitblit.properties")) {
 				webxmlSettings.applyOverrides(overrideFile);
 			}
+			
 			configureContext(webxmlSettings, true);
 
 			// Copy the included scripts to the configured groovy folder
diff --git a/src/com/gitblit/client/EditRepositoryDialog.java b/src/com/gitblit/client/EditRepositoryDialog.java
index aa6ad58..6f9ed52 100644
--- a/src/com/gitblit/client/EditRepositoryDialog.java
+++ b/src/com/gitblit/client/EditRepositoryDialog.java
@@ -227,9 +227,8 @@
 		isFrozen = new JCheckBox(Translation.get("gb.isFrozenDescription"),
 				anRepository.isFrozen);
 
-		maxActivityCommits = new JComboBox(new Integer [] { 0, 25, 50, 75, 100, 150, 250, 500 });
+		maxActivityCommits = new JComboBox(new Integer [] { -1, 0, 25, 50, 75, 100, 150, 250, 500 });
 		maxActivityCommits.setSelectedItem(anRepository.maxActivityCommits);
-
 
 		mailingListsField = new JTextField(
 				ArrayUtils.isEmpty(anRepository.mailingLists) ? ""
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/utils/ActivityUtils.java b/src/com/gitblit/utils/ActivityUtils.java
index 80aaebb..ef3a55e 100644
--- a/src/com/gitblit/utils/ActivityUtils.java
+++ b/src/com/gitblit/utils/ActivityUtils.java
@@ -81,6 +81,10 @@
 
 		Map<String, Activity> activity = new HashMap<String, Activity>();
 		for (RepositoryModel model : models) {
+			if (model.maxActivityCommits == -1) {
+				// skip this repository
+				continue;
+			}
 			if (model.hasCommits && model.lastChange.after(thresholdDate)) {
 				if (model.isCollectingGarbage) {
 					continue;
diff --git a/src/com/gitblit/wicket/GitBlitWebApp.properties b/src/com/gitblit/wicket/GitBlitWebApp.properties
index 5b42a2c..16f7641 100644
--- a/src/com/gitblit/wicket/GitBlitWebApp.properties
+++ b/src/com/gitblit/wicket/GitBlitWebApp.properties
@@ -439,4 +439,5 @@
 gb.sslCertificateGeneratedRestart = Successfully generated new server SSL certificate for {0}.\nYou must restart Gitblit to use the new certificate.\n\nIf you are launching with the '--alias' parameter you will have to set that to ''--alias {0}''.
 gb.validity = validity
 gb.siteName = site name
-gb.siteNameDescription = short, descriptive name of your server 
\ No newline at end of file
+gb.siteNameDescription = short, descriptive name of your server 
+gb.excludeFromActivity = exclude from activity page
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
index 7f66f68..a071b69 100644
--- a/src/com/gitblit/wicket/pages/EditRepositoryPage.java
+++ b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
@@ -414,7 +414,7 @@
 		form.add(new CheckBox("showReadme"));
 		form.add(new CheckBox("skipSizeCalculation"));
 		form.add(new CheckBox("skipSummaryMetrics"));
-		List<Integer> maxActivityCommits  = Arrays.asList(0, 25, 50, 75, 100, 150, 200, 250, 500 );
+		List<Integer> maxActivityCommits  = Arrays.asList(-1, 0, 25, 50, 75, 100, 150, 200, 250, 500 );
 		form.add(new DropDownChoice<Integer>("maxActivityCommits", maxActivityCommits, new MaxActivityCommitsRenderer()));
 
 		mailingLists = new Model<String>(ArrayUtils.isEmpty(repositoryModel.mailingLists) ? ""
@@ -666,7 +666,9 @@
 
 		@Override
 		public String getDisplayValue(Integer value) {
-			if (value == 0) {
+			if (value == -1) {
+				return getString("gb.excludeFromActivity");
+			} else if (value == 0) {
 				return getString("gb.noMaximum");
 			} else {
 				return value + " " + getString("gb.commits");
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/ActivityPanel.html b/src/com/gitblit/wicket/panels/ActivityPanel.html
index f4d1409..b818e94 100644
--- a/src/com/gitblit/wicket/panels/ActivityPanel.html
+++ b/src/com/gitblit/wicket/panels/ActivityPanel.html
@@ -26,7 +26,7 @@
 				</td>
 				<td class="hidden-phone rightAlign" style="width:7em;vertical-align: middle;">
         			<span class="link">
-						<a wicket:id="view" target="_blank"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="diff" target="_blank"><wicket:message key="gb.diff"></wicket:message></a> | <a wicket:id="tree" target="_blank"><wicket:message key="gb.tree"></wicket:message></a>
+						<a wicket:id="diff" target="_blank"><wicket:message key="gb.diff"></wicket:message></a> | <a wicket:id="tree" target="_blank"><wicket:message key="gb.tree"></wicket:message></a>
 					</span>
 				</td>		
 			</tr>		
diff --git a/src/com/gitblit/wicket/panels/ActivityPanel.java b/src/com/gitblit/wicket/panels/ActivityPanel.java
index 9a123d8..6caee3e 100644
--- a/src/com/gitblit/wicket/panels/ActivityPanel.java
+++ b/src/com/gitblit/wicket/panels/ActivityPanel.java
@@ -132,9 +132,7 @@
 						commitItem.add(new RefsPanel("commitRefs", commit.repository, commit
 								.getRefs()));
 
-						// view, diff, tree links
-						commitItem.add(new BookmarkablePageLink<Void>("view", CommitPage.class,
-								WicketUtils.newObjectParameter(commit.repository, commit.getName())));
+						// diff, tree links
 						commitItem.add(new BookmarkablePageLink<Void>("diff", CommitDiffPage.class,
 								WicketUtils.newObjectParameter(commit.repository, commit.getName()))
 								.setEnabled(commit.getParentCount() > 0));
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