From cacf8bff097fbb66a7be1bfe267b5da2605145f8 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 29 Nov 2013 11:05:46 -0500 Subject: [PATCH] Use Dagger to inject managers into all filters and servlets --- src/main/java/com/gitblit/GitFilter.java | 33 ++++++++++++++++++++++++++------- 1 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/gitblit/GitFilter.java b/src/main/java/com/gitblit/GitFilter.java index 5e18f5f..ba8443d 100644 --- a/src/main/java/com/gitblit/GitFilter.java +++ b/src/main/java/com/gitblit/GitFilter.java @@ -17,8 +17,14 @@ import java.text.MessageFormat; +import javax.inject.Inject; +import javax.inject.Singleton; + import com.gitblit.Constants.AccessRestrictionType; import com.gitblit.Constants.AuthorizationControl; +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; import com.gitblit.utils.StringUtils; @@ -31,6 +37,7 @@ * @author James Moger * */ +@Singleton public class GitFilter extends AccessRestrictionFilter { protected static final String gitReceivePack = "/git-receive-pack"; @@ -39,6 +46,18 @@ protected static final String[] suffixes = { gitReceivePack, gitUploadPack, "/info/refs", "/HEAD", "/objects" }; + + private final IStoredSettings settings; + + @Inject + public GitFilter( + IRuntimeManager runtimeManager, + ISessionManager sessionManager, + IRepositoryManager repositoryManager) { + + super(runtimeManager, sessionManager, repositoryManager); + this.settings = runtimeManager.getSettings(); + } /** * Extract the repository name from the url. @@ -100,7 +119,7 @@ */ @Override protected boolean isCreationAllowed() { - return GitBlit.getBoolean(Keys.git.allowCreateOnPush, true); + return settings.getBoolean(Keys.git.allowCreateOnPush, true); } /** @@ -119,7 +138,7 @@ @Override protected boolean requiresClientCertificate() { - return GitBlit.getBoolean(Keys.git.requiresClientCertificate, false); + return settings.getBoolean(Keys.git.requiresClientCertificate, false); } /** @@ -152,7 +171,7 @@ */ @Override protected boolean canAccess(RepositoryModel repository, UserModel user, String action) { - if (!GitBlit.getBoolean(Keys.git.enableGitServlet, true)) { + if (!settings.getBoolean(Keys.git.enableGitServlet, true)) { // Git Servlet disabled return false; } @@ -223,15 +242,15 @@ model.accessRestriction = AccessRestrictionType.VIEW; } else { // common repository, user default server settings - model.authorizationControl = AuthorizationControl.fromName(GitBlit.getString(Keys.git.defaultAuthorizationControl, "")); - model.accessRestriction = AccessRestrictionType.fromName(GitBlit.getString(Keys.git.defaultAccessRestriction, "PUSH")); + model.authorizationControl = AuthorizationControl.fromName(settings.getString(Keys.git.defaultAuthorizationControl, "")); + model.accessRestriction = AccessRestrictionType.fromName(settings.getString(Keys.git.defaultAccessRestriction, "PUSH")); } // create the repository try { - GitBlit.self().updateRepositoryModel(model.name, model, true); + repositoryManager.updateRepositoryModel(model.name, model, true); logger.info(MessageFormat.format("{0} created {1} ON-PUSH", user.username, model.name)); - return GitBlit.self().getRepositoryModel(model.name); + return repositoryManager.getRepositoryModel(model.name); } catch (GitBlitException e) { logger.error(MessageFormat.format("{0} failed to create repository {1} ON-PUSH!", user.username, model.name), e); } -- Gitblit v1.9.1