From e3733c7a39cb0249922c7042d6b21a10c2e21e53 Mon Sep 17 00:00:00 2001 From: Alex Lewis <alex.lewis001@gmail.com> Date: Mon, 02 Dec 2013 14:59:40 -0500 Subject: [PATCH] Add coloring modes to the blame page (issue-2, pull request #125) --- src/main/java/com/gitblit/git/GitblitReceivePack.java | 57 +++++++++++++++++++++++++++------------------------------ 1 files changed, 27 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/gitblit/git/GitblitReceivePack.java b/src/main/java/com/gitblit/git/GitblitReceivePack.java index 8da603a..e5c0ea4 100644 --- a/src/main/java/com/gitblit/git/GitblitReceivePack.java +++ b/src/main/java/com/gitblit/git/GitblitReceivePack.java @@ -44,12 +44,10 @@ import com.gitblit.Constants; import com.gitblit.Constants.AccessRestrictionType; -import com.gitblit.GitBlit; import com.gitblit.IStoredSettings; import com.gitblit.Keys; import com.gitblit.client.Translation; -import com.gitblit.manager.IRepositoryManager; -import com.gitblit.manager.IRuntimeManager; +import com.gitblit.manager.IGitblit; import com.gitblit.models.RepositoryModel; import com.gitblit.models.UserModel; import com.gitblit.utils.ArrayUtils; @@ -91,17 +89,25 @@ protected GroovyScriptEngine gse; - public GitblitReceivePack(Repository db, RepositoryModel repository, UserModel user) { + private final IStoredSettings settings; + + private final IGitblit gitblit; + + public GitblitReceivePack( + IGitblit gitblit, + Repository db, + RepositoryModel repository, + UserModel user) { + super(db); - - IRepositoryManager repositoryManager = GitBlit.getManager(IRepositoryManager.class); - + this.settings = gitblit.getSettings(); + this.gitblit = gitblit; this.repository = repository; - this.user = user == null ? UserModel.ANONYMOUS : user; - this.groovyDir = repositoryManager.getHooksFolder(); + this.user = user; + this.groovyDir = gitblit.getHooksFolder(); try { // set Grape root - File grapeRoot = repositoryManager.getGrapesFolder(); + File grapeRoot = gitblit.getGrapesFolder(); grapeRoot.mkdirs(); System.setProperty("grape.root", grapeRoot.getAbsolutePath()); this.gse = new GroovyScriptEngine(groovyDir.getAbsolutePath()); @@ -161,8 +167,11 @@ if (repository.accessRestriction.atLeast(AccessRestrictionType.PUSH) && repository.verifyCommitter) { // enforce committer verification if (StringUtils.isEmpty(user.emailAddress)) { - // emit warning if user does not have an email address - LOGGER.warn(MessageFormat.format("Consider setting an email address for {0} ({1}) to improve committer verification.", user.getDisplayName(), user.username)); + // reject the push because the pushing account does not have an email address + for (ReceiveCommand cmd : commands) { + sendRejection(cmd, "Sorry, the account \"{0}\" does not have an email address set for committer verification!", user.username); + } + return; } // Optionally enforce that the committer of first parent chain @@ -195,16 +204,9 @@ PersonIdent committer = commit.getCommitterIdent(); if (!user.is(committer.getName(), committer.getEmailAddress())) { - String reason; - if (StringUtils.isEmpty(user.emailAddress)) { - // account does not have an email address - reason = MessageFormat.format("{0} by {1} <{2}> was not committed by {3} ({4})", - commit.getId().name(), committer.getName(), StringUtils.isEmpty(committer.getEmailAddress()) ? "?":committer.getEmailAddress(), user.getDisplayName(), user.username); - } else { - // account has an email address - reason = MessageFormat.format("{0} by {1} <{2}> was not committed by {3} ({4}) <{5}>", - commit.getId().name(), committer.getName(), StringUtils.isEmpty(committer.getEmailAddress()) ? "?":committer.getEmailAddress(), user.getDisplayName(), user.username, user.emailAddress); - } + // verification failed + String reason = MessageFormat.format("{0} by {1} <{2}> was not committed by {3} ({4}) <{5}>", + commit.getId().name(), committer.getName(), StringUtils.isEmpty(committer.getEmailAddress()) ? "?":committer.getEmailAddress(), user.getDisplayName(), user.username, user.emailAddress); LOGGER.warn(reason); cmd.setResult(Result.REJECTED_OTHER_REASON, reason); allRejected &= true; @@ -239,9 +241,8 @@ } } - IRepositoryManager repositoryManager = GitBlit.getManager(IRepositoryManager.class); Set<String> scripts = new LinkedHashSet<String>(); - scripts.addAll(repositoryManager.getPreReceiveScriptsInherited(repository)); + scripts.addAll(gitblit.getPreReceiveScriptsInherited(repository)); if (!ArrayUtils.isEmpty(repository.preReceiveScripts)) { scripts.addAll(repository.preReceiveScripts); } @@ -265,8 +266,6 @@ LOGGER.debug("skipping post-receive hooks, no refs created, updated, or removed"); return; } - - IStoredSettings settings = GitBlit.getManager(IRuntimeManager.class).getSettings(); // log ref changes for (ReceiveCommand cmd : commands) { @@ -336,11 +335,9 @@ LOGGER.error(MessageFormat.format("Failed to update {0} pushlog", repository.name), e); } - IRepositoryManager repositoryManager = GitBlit.getManager(IRepositoryManager.class); - // run Groovy hook scripts Set<String> scripts = new LinkedHashSet<String>(); - scripts.addAll(repositoryManager.getPostReceiveScriptsInherited(repository)); + scripts.addAll(gitblit.getPostReceiveScriptsInherited(repository)); if (!ArrayUtils.isEmpty(repository.postReceiveScripts)) { scripts.addAll(repository.postReceiveScripts); } @@ -455,7 +452,7 @@ } Binding binding = new Binding(); - binding.setVariable("gitblit", GitBlit.self()); + binding.setVariable("gitblit", gitblit); binding.setVariable("repository", repository); binding.setVariable("receivePack", this); binding.setVariable("user", user); -- Gitblit v1.9.1