From aa6d43e8b28ff73d69a920e9b3a7b284cfce00c3 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 29 Nov 2013 11:05:51 -0500
Subject: [PATCH] Extract SessionManager from GitBlit singleton
---
src/main/java/com/gitblit/PagesFilter.java | 45 ++++++++++++++++++++++++++++++---------------
1 files changed, 30 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/gitblit/PagesFilter.java b/src/main/java/com/gitblit/PagesFilter.java
index 68ae31e..a322af2 100644
--- a/src/main/java/com/gitblit/PagesFilter.java
+++ b/src/main/java/com/gitblit/PagesFilter.java
@@ -15,31 +15,46 @@
*/
package com.gitblit;
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
import org.eclipse.jgit.lib.Repository;
import com.gitblit.Constants.AccessRestrictionType;
+import com.gitblit.manager.IRepositoryManager;
+import com.gitblit.manager.IRuntimeManager;
+import com.gitblit.manager.ISessionManager;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.UserModel;
/**
* The PagesFilter is an AccessRestrictionFilter which ensures the gh-pages
* requests for a view-restricted repository are authenticated and authorized.
- *
+ *
* @author James Moger
- *
+ *
*/
+@Singleton
public class PagesFilter extends AccessRestrictionFilter {
+
+ @Inject
+ public PagesFilter(IRuntimeManager runtimeManager,
+ ISessionManager sessionManager,
+ IRepositoryManager repositoryManager) {
+
+ super(runtimeManager, sessionManager, repositoryManager);
+ }
/**
* Extract the repository name from the url.
- *
+ *
* @param url
* @return repository name
*/
@Override
- protected String extractRepositoryName(String url) {
+ protected String extractRepositoryName(String url) {
// get the repository name from the url by finding a known url suffix
- String repository = "";
+ String repository = "";
Repository r = null;
int offset = 0;
while (r == null) {
@@ -49,14 +64,14 @@
} else {
repository = url.substring(0, slash);
}
- r = GitBlit.self().getRepository(repository, false);
+ r = repositoryManager.getRepository(repository, false);
if (r == null) {
// try again
- offset = slash + 1;
+ offset = slash + 1;
} else {
// close the repo
r.close();
- }
+ }
if (repository.equals(url)) {
// either only repository in url or no repository found
break;
@@ -67,7 +82,7 @@
/**
* Analyze the url and returns the action of the request.
- *
+ *
* @param cloneUrl
* @return action of the request
*/
@@ -78,7 +93,7 @@
/**
* Determine if a non-existing repository can be created using this filter.
- *
+ *
* @return true if the filter allows repository creation
*/
@Override
@@ -88,7 +103,7 @@
/**
* Determine if the action may be executed on the repository.
- *
+ *
* @param repository
* @param action
* @return true if the action may be performed
@@ -97,10 +112,10 @@
protected boolean isActionAllowed(RepositoryModel repository, String action) {
return true;
}
-
+
/**
* Determine if the repository requires authentication.
- *
+ *
* @param repository
* @param action
* @return true if authentication required
@@ -113,14 +128,14 @@
/**
* Determine if the user can access the repository and perform the specified
* action.
- *
+ *
* @param repository
* @param user
* @param action
* @return true if user may execute the action on the repository
*/
@Override
- protected boolean canAccess(RepositoryModel repository, UserModel user, String action) {
+ protected boolean canAccess(RepositoryModel repository, UserModel user, String action) {
return user.canView(repository);
}
}
--
Gitblit v1.9.1