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/git/GitblitReceivePackFactory.java | 36 ++++++++++++++++++++++++++++++------ 1 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/gitblit/git/GitblitReceivePackFactory.java b/src/main/java/com/gitblit/git/GitblitReceivePackFactory.java index b9eb8a6..2cdb985 100644 --- a/src/main/java/com/gitblit/git/GitblitReceivePackFactory.java +++ b/src/main/java/com/gitblit/git/GitblitReceivePackFactory.java @@ -26,7 +26,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.gitblit.GitBlit; +import com.gitblit.IStoredSettings; +import com.gitblit.Keys; +import com.gitblit.manager.IRepositoryManager; +import com.gitblit.manager.IRuntimeManager; +import com.gitblit.manager.IUserManager; import com.gitblit.models.RepositoryModel; import com.gitblit.models.UserModel; import com.gitblit.utils.HttpUtils; @@ -42,6 +46,27 @@ public class GitblitReceivePackFactory<X> implements ReceivePackFactory<X> { protected final Logger logger = LoggerFactory.getLogger(GitblitReceivePackFactory.class); + + private final IStoredSettings settings; + + private final IRuntimeManager runtimeManager; + + private final IUserManager userManager; + + private final IRepositoryManager repositoryManager; + + public GitblitReceivePackFactory( + IRuntimeManager runtimeManager, + IUserManager userManager, + IRepositoryManager repositoryManager) { + + super(); + this.settings = runtimeManager.getSettings(); + this.runtimeManager = runtimeManager; + this.userManager = userManager; + this.repositoryManager = repositoryManager; + + } @Override public ReceivePack create(X req, Repository db) @@ -65,7 +90,7 @@ // determine pushing user String username = request.getRemoteUser(); if (!StringUtils.isEmpty(username)) { - UserModel u = GitBlit.self().getUserModel(username); + UserModel u = userManager.getUserModel(username); if (u != null) { user = u; } @@ -80,16 +105,15 @@ timeout = client.getDaemon().getTimeout(); } - // TODO make this a setting - boolean allowAnonymousPushes = true; + boolean allowAnonymousPushes = settings.getBoolean(Keys.git.allowAnonymousPushes, false); if (!allowAnonymousPushes && UserModel.ANONYMOUS.equals(user)) { // prohibit anonymous pushes throw new ServiceNotEnabledException(); } - final RepositoryModel repository = GitBlit.self().getRepositoryModel(repositoryName); + final RepositoryModel repository = repositoryManager.getRepositoryModel(repositoryName); - final GitblitReceivePack rp = new GitblitReceivePack(db, repository, user); + final GitblitReceivePack rp = new GitblitReceivePack(runtimeManager, repositoryManager, db, repository, user); rp.setGitblitUrl(gitblitUrl); rp.setRepositoryUrl(repositoryUrl); rp.setRefLogIdent(new PersonIdent(user.username, user.username + "@" + origin)); -- Gitblit v1.9.1