From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001
From: Paul Martin <paul@paulsputer.com>
Date: Sat, 30 Apr 2016 04:19:14 -0400
Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates

---
 src/main/java/com/gitblit/wicket/AuthorizationStrategy.java |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/AuthorizationStrategy.java b/src/main/java/com/gitblit/wicket/AuthorizationStrategy.java
index e3774d8..51ae648 100644
--- a/src/main/java/com/gitblit/wicket/AuthorizationStrategy.java
+++ b/src/main/java/com/gitblit/wicket/AuthorizationStrategy.java
@@ -19,8 +19,9 @@
 import org.apache.wicket.RestartResponseException;
 import org.apache.wicket.authorization.IUnauthorizedComponentInstantiationListener;
 import org.apache.wicket.authorization.strategies.page.AbstractPageAuthorizationStrategy;
+import org.apache.wicket.markup.html.WebPage;
 
-import com.gitblit.GitBlit;
+import com.gitblit.IStoredSettings;
 import com.gitblit.Keys;
 import com.gitblit.models.UserModel;
 import com.gitblit.wicket.pages.BasePage;
@@ -28,22 +29,27 @@
 public class AuthorizationStrategy extends AbstractPageAuthorizationStrategy implements
 		IUnauthorizedComponentInstantiationListener {
 
-	public AuthorizationStrategy() {
+	IStoredSettings settings;
+	Class<? extends WebPage> homepageClass;
+
+	public AuthorizationStrategy(IStoredSettings settings, Class<? extends WebPage> homepageClass) {
+		this.settings = settings;
+		this.homepageClass = homepageClass;
 	}
 
 	@SuppressWarnings({ "unchecked", "rawtypes" })
 	@Override
 	protected boolean isPageAuthorized(Class pageClass) {
-		if (GitBlitWebApp.HOME_PAGE_CLASS.equals(pageClass)) {
+		if (homepageClass.equals(pageClass)) {
 			// allow all requests to get to the HomePage with its inline
 			// authentication form
 			return true;
 		}
 
 		if (BasePage.class.isAssignableFrom(pageClass)) {
-			boolean authenticateView = GitBlit.getBoolean(Keys.web.authenticateViewPages, true);
-			boolean authenticateAdmin = GitBlit.getBoolean(Keys.web.authenticateAdminPages, true);
-			boolean allowAdmin = GitBlit.getBoolean(Keys.web.allowAdministration, true);
+			boolean authenticateView = settings.getBoolean(Keys.web.authenticateViewPages, true);
+			boolean authenticateAdmin = settings.getBoolean(Keys.web.authenticateAdminPages, true);
+			boolean allowAdmin = settings.getBoolean(Keys.web.allowAdministration, true);
 
 			GitBlitWebSession session = GitBlitWebSession.get();
 			if (authenticateView && !session.isLoggedIn()) {
@@ -79,7 +85,7 @@
 	public void onUnauthorizedInstantiation(Component component) {
 
 		if (component instanceof BasePage) {
-			throw new RestartResponseException(GitBlitWebApp.HOME_PAGE_CLASS);
+			throw new RestartResponseException(homepageClass);
 		}
 	}
 }

--
Gitblit v1.9.1