diff --git a/core/src/main/java/hudson/cli/GetNodeCommand.java b/core/src/main/java/hudson/cli/GetNodeCommand.java index a5f9362a3f459ba13dfac8d6bdca2e50c2054c43..c9965845f304db88635467455e468378c2e8fba5 100644 --- a/core/src/main/java/hudson/cli/GetNodeCommand.java +++ b/core/src/main/java/hudson/cli/GetNodeCommand.java @@ -52,7 +52,7 @@ public class GetNodeCommand extends CLICommand { @Override protected int run() throws IOException { - node.checkPermission(Computer.READ); + node.checkPermission(Computer.EXTENDED_READ); Jenkins.XSTREAM2.toXMLUTF8(node, stdout); diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index 6c0a47f7282b82fb2b4a6fcc2425f187e74ba5e6..8a97ddd2fb37f1fd620ce476bafe1d770b2b3072 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -1189,7 +1189,7 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces if (req.getMethod().equals("GET")) { // read - checkPermission(READ); + checkPermission(EXTENDED_READ); rsp.setContentType("application/xml"); Jenkins.XSTREAM2.toXMLUTF8(getNode(), rsp.getOutputStream()); return; @@ -1350,11 +1350,8 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces } public static final PermissionGroup PERMISSIONS = new PermissionGroup(Computer.class,Messages._Computer_Permissions_Title()); - /** - * Permission to configure slaves. - */ - public static final Permission READ = new Permission(PERMISSIONS,"Read", Messages._Computer_ReadPermission_Description(), Permission.READ, PermissionScope.COMPUTER); public static final Permission CONFIGURE = new Permission(PERMISSIONS,"Configure", Messages._Computer_ConfigurePermission_Description(), Permission.CONFIGURE, PermissionScope.COMPUTER); + public static final Permission EXTENDED_READ = new Permission(PERMISSIONS,"ExtendedRead", Messages._Computer_ExtendedReadPermission_Description(), CONFIGURE, PermissionScope.COMPUTER); public static final Permission DELETE = new Permission(PERMISSIONS,"Delete", Messages._Computer_DeletePermission_Description(), Permission.DELETE, PermissionScope.COMPUTER); public static final Permission CREATE = new Permission(PERMISSIONS,"Create", Messages._Computer_CreatePermission_Description(), Permission.CREATE, PermissionScope.COMPUTER); public static final Permission DISCONNECT = new Permission(PERMISSIONS,"Disconnect", Messages._Computer_DisconnectPermission_Description(), Jenkins.ADMINISTER, PermissionScope.COMPUTER); diff --git a/core/src/main/resources/hudson/model/Messages.properties b/core/src/main/resources/hudson/model/Messages.properties index b0c191631270aa19a9ef2f11add58318a0b46e7c..861d32b057b5466fd2dcf3ebd01fe06418bc2430 100644 --- a/core/src/main/resources/hudson/model/Messages.properties +++ b/core/src/main/resources/hudson/model/Messages.properties @@ -102,7 +102,7 @@ CLI.wait-node-offline.shortDescription=Wait for a node to become offline Computer.Caption=Slave {0} Computer.NoSuchSlaveExists=No such slave "{0}" exists. Did you mean "{1}"? Computer.Permissions.Title=Slave -Computer.ReadPermission.Description=This permission allows users to read slave configuration. +Computer.ExtendedReadPermission.Description=This permission allows users to read slave configuration. Computer.ConfigurePermission.Description=This permission allows users to configure slaves. Computer.DeletePermission.Description=This permission allows users to delete existing slaves. Computer.CreatePermission.Description=This permission allows users to create slaves. diff --git a/test/src/test/java/hudson/cli/GetNodeCommandTest.java b/test/src/test/java/hudson/cli/GetNodeCommandTest.java index afabcf0e0c4fd70c34d6bad93d5d3c20ede87b87..c240977f65a1f3dd8d6a986068e4826f0330fcc8 100644 --- a/test/src/test/java/hudson/cli/GetNodeCommandTest.java +++ b/test/src/test/java/hudson/cli/GetNodeCommandTest.java @@ -57,7 +57,7 @@ public class GetNodeCommandTest { .invokeWithArgs("MySlave") ; - assertThat(result.stderr(), containsString("user is missing the Slave/Read permission")); + assertThat(result.stderr(), containsString("user is missing the Slave/ExtendedRead permission")); assertThat("No output expected", result.stdout(), isEmptyString()); assertThat("Command is expected to fail", result.returnCode(), equalTo(-1)); } @@ -67,7 +67,7 @@ public class GetNodeCommandTest { j.createSlave("MySlave", null, null); final CLICommandInvoker.Result result = command - .authorizedTo(Computer.READ, Jenkins.READ) + .authorizedTo(Computer.EXTENDED_READ, Jenkins.READ) .invokeWithArgs("MySlave") ; @@ -80,7 +80,7 @@ public class GetNodeCommandTest { @Test public void getNodeShouldFailIfNodeDoesNotExist() throws Exception { final CLICommandInvoker.Result result = command - .authorizedTo(Computer.READ, Jenkins.READ) + .authorizedTo(Computer.EXTENDED_READ, Jenkins.READ) .invokeWithArgs("MySlave") ; diff --git a/test/src/test/java/hudson/model/ComputerConfigDotXmlTest.java b/test/src/test/java/hudson/model/ComputerConfigDotXmlTest.java index 13c5c26862b70cc3fc262e25d26665ff1fb7d69e..5500506ef3bc51479cf4fc9d24c03cd3e53845a5 100644 --- a/test/src/test/java/hudson/model/ComputerConfigDotXmlTest.java +++ b/test/src/test/java/hudson/model/ComputerConfigDotXmlTest.java @@ -107,7 +107,7 @@ public class ComputerConfigDotXmlTest { GlobalMatrixAuthorizationStrategy auth = new GlobalMatrixAuthorizationStrategy(); rule.jenkins.setAuthorizationStrategy(auth); - auth.add(Computer.READ, "user"); + auth.add(Computer.EXTENDED_READ, "user"); final OutputStream outputStream = captureOutput();