From 5db8cecae3e995eeaa95beebc81296a94f4774ec Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sat, 18 Oct 2014 18:51:25 -0700 Subject: [PATCH] Added a AdminMonitor to to warn when this subsystem is disabled ... unless a few conditions indicate that it is likely irrelevant. --- .../admin/MasterKillSwitchWarning.java | 43 +++++++++++++++++++ .../MasterKillSwitchWarning/message.jelly | 36 ++++++++++++++++ .../message.properties | 2 + 3 files changed, 81 insertions(+) create mode 100644 core/src/main/java/jenkins/security/admin/MasterKillSwitchWarning.java create mode 100644 core/src/main/resources/jenkins/security/admin/MasterKillSwitchWarning/message.jelly create mode 100644 core/src/main/resources/jenkins/security/admin/MasterKillSwitchWarning/message.properties diff --git a/core/src/main/java/jenkins/security/admin/MasterKillSwitchWarning.java b/core/src/main/java/jenkins/security/admin/MasterKillSwitchWarning.java new file mode 100644 index 0000000000..182de24685 --- /dev/null +++ b/core/src/main/java/jenkins/security/admin/MasterKillSwitchWarning.java @@ -0,0 +1,43 @@ +package jenkins.security.admin; + +import hudson.Extension; +import hudson.model.AdministrativeMonitor; +import jenkins.model.Jenkins; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.HttpResponses; +import org.kohsuke.stapler.QueryParameter; + +import javax.inject.Inject; +import java.io.IOException; + +/** + * If {@link AdminWhitelistRule#masterKillSwitch} is on, warn the user. + * + * @author Kohsuke Kawaguchi + * @since 1.THU + */ +@Extension +public class MasterKillSwitchWarning extends AdministrativeMonitor { + @Inject + AdminWhitelistRule rule; + + @Inject + Jenkins jenkins; + + @Override + public boolean isActivated() { + return rule.getMasterKillSwitch() + && jenkins.getComputers().length>1 // if there's no slave, there's no point + && jenkins.isUseSecurity() // if security is off, likewise this is pointless + ; + } + + public HttpResponse doAct(@QueryParameter String dismiss) throws IOException { + if(dismiss!=null) { + disable(true); + return HttpResponses.redirectViaContextPath("/manage"); + } else { + return HttpResponses.redirectViaContextPath("configureSecurity"); + } + } +} diff --git a/core/src/main/resources/jenkins/security/admin/MasterKillSwitchWarning/message.jelly b/core/src/main/resources/jenkins/security/admin/MasterKillSwitchWarning/message.jelly new file mode 100644 index 0000000000..6192f8b897 --- /dev/null +++ b/core/src/main/resources/jenkins/security/admin/MasterKillSwitchWarning/message.jelly @@ -0,0 +1,36 @@ + + + + +
+
+
+ + +
+ ${%blurb} +
+
+
\ No newline at end of file diff --git a/core/src/main/resources/jenkins/security/admin/MasterKillSwitchWarning/message.properties b/core/src/main/resources/jenkins/security/admin/MasterKillSwitchWarning/message.properties new file mode 100644 index 0000000000..7c847a2111 --- /dev/null +++ b/core/src/main/resources/jenkins/security/admin/MasterKillSwitchWarning/message.properties @@ -0,0 +1,2 @@ +blurb=Slave to master security subsystem is currently off. \ + Please read the documentation and consider turning it on. \ No newline at end of file