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 | 47 +++++++++++++++++++++++++++++++---------------- 1 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/gitblit/PagesFilter.java b/src/main/java/com/gitblit/PagesFilter.java index f88624e..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,8 +82,8 @@ /** * Analyze the url and returns the action of the request. - * - * @param url + * + * @param cloneUrl * @return action of the request */ @Override @@ -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