From 6b5c4436d1024a31652bf549b5fa9ce4ba6921ef Mon Sep 17 00:00:00 2001 From: Ryan Campbell Date: Tue, 30 Aug 2011 16:07:36 -0500 Subject: [PATCH] Introduce a fine-grained permission to control who is allowed to run the Groovy Console. --- changelog.html | 2 ++ core/src/main/java/hudson/cli/GroovyCommand.java | 4 ++-- core/src/main/java/jenkins/model/Jenkins.java | 4 +++- core/src/main/resources/hudson/model/Messages.properties | 3 +++ .../src/main/resources/jenkins/model/Jenkins/manage.jelly | 8 +++++--- core/src/main/resources/lib/hudson/scriptConsole.jelly | 2 +- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/changelog.html b/changelog.html index 75918f1639..5fb20d8b1a 100644 --- a/changelog.html +++ b/changelog.html @@ -57,6 +57,8 @@ Upcoming changes diff --git a/core/src/main/java/hudson/cli/GroovyCommand.java b/core/src/main/java/hudson/cli/GroovyCommand.java index 0470543914..2c44da6c94 100644 --- a/core/src/main/java/hudson/cli/GroovyCommand.java +++ b/core/src/main/java/hudson/cli/GroovyCommand.java @@ -69,8 +69,8 @@ public class GroovyCommand extends CLICommand implements Serializable { public List remaining = new ArrayList(); protected int run() throws Exception { - // this allows the caller to manipulate the JVM state, so require the admin privilege. - Jenkins.getInstance().checkPermission(Jenkins.ADMINISTER); + // this allows the caller to manipulate the JVM state, so require the execute script privilege. + Jenkins.getInstance().checkPermission(Jenkins.EXECUTE_SCRIPT); Binding binding = new Binding(); binding.setProperty("out",new PrintWriter(stdout,true)); diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 9581459cf4..e4cbc00a3b 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -25,6 +25,7 @@ */ package jenkins.model; +import hudson.model.Messages; import hudson.model.Node; import hudson.model.AbstractCIBase; import hudson.model.AbstractProject; @@ -3125,7 +3126,7 @@ public class Jenkins extends AbstractCIBase implements ModifiableItemGroup ${%JenkinsCliText} - - ${%Executes arbitrary script for administration/trouble-shooting/diagnostics.} - + + + ${%Executes arbitrary script for administration/trouble-shooting/diagnostics.} + + ${%Add, remove, control and monitor the various nodes that Jenkins runs jobs on.} diff --git a/core/src/main/resources/lib/hudson/scriptConsole.jelly b/core/src/main/resources/lib/hudson/scriptConsole.jelly index cd975737c0..c6673401a5 100644 --- a/core/src/main/resources/lib/hudson/scriptConsole.jelly +++ b/core/src/main/resources/lib/hudson/scriptConsole.jelly @@ -27,7 +27,7 @@ THE SOFTWARE. --> - + -- GitLab