diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index 17c42968b9..80d783a079 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -611,7 +611,7 @@ public abstract class PluginManager extends AbstractModelObject { } public HttpResponse doUpdateSources(StaplerRequest req) throws IOException { - Jenkins.getInstance().checkPermission(Jenkins.ADMINISTER); + Jenkins.getInstance().checkPermission(CONFIGURE_UPDATECENTER); if (req.hasParameter("remove")) { UpdateCenter uc = Jenkins.getInstance().getUpdateCenter(); @@ -658,7 +658,7 @@ public abstract class PluginManager extends AbstractModelObject { */ public HttpResponse doSiteConfigure(@QueryParameter String site) throws IOException { Jenkins hudson = Jenkins.getInstance(); - hudson.checkPermission(Jenkins.ADMINISTER); + hudson.checkPermission(CONFIGURE_UPDATECENTER); UpdateCenter uc = hudson.getUpdateCenter(); PersistedList sites = uc.getSites(); for (UpdateSite s : sites) { @@ -673,7 +673,7 @@ public abstract class PluginManager extends AbstractModelObject { public HttpResponse doProxyConfigure(StaplerRequest req) throws IOException, ServletException { Jenkins jenkins = Jenkins.getInstance(); - jenkins.checkPermission(Jenkins.ADMINISTER); + jenkins.checkPermission(CONFIGURE_UPDATECENTER); ProxyConfiguration pc = req.bindJSON(ProxyConfiguration.class, req.getSubmittedForm()); if (pc.name==null) { @@ -834,6 +834,7 @@ public abstract class PluginManager extends AbstractModelObject { public static boolean FAST_LOOKUP = !Boolean.getBoolean(PluginManager.class.getName()+".noFastLookup"); public static final Permission UPLOAD_PLUGINS = new Permission(Jenkins.PERMISSIONS, "UploadPlugins", Messages._PluginManager_UploadPluginsPermission_Description(),Jenkins.ADMINISTER,PermissionScope.JENKINS); + public static final Permission CONFIGURE_UPDATECENTER = new Permission(Jenkins.PERMISSIONS, "ConfigureUpdateCenter", Messages._PluginManager_ConfigureUpdateCenterPermission_Description(),Jenkins.ADMINISTER,PermissionScope.JENKINS); /** * Remembers why a plugin failed to deploy. diff --git a/core/src/main/resources/hudson/Messages.properties b/core/src/main/resources/hudson/Messages.properties index d6e8c52de4..38ec4e855e 100644 --- a/core/src/main/resources/hudson/Messages.properties +++ b/core/src/main/resources/hudson/Messages.properties @@ -56,6 +56,9 @@ PluginManager.PortNotANumber=Port is not a number PluginManager.PortNotInRange=Port does''t range from {0} to {1} PluginManager.UploadPluginsPermission.Description=\ The "upload plugin" permission allows a user to upload arbitrary plugins. +PluginManager.ConfigureUpdateCenterPermission.Description=\ + The "configure update center" permission allows a user to \ +configure update sites and proxy settings. AboutJenkins.DisplayName=About Jenkins AboutJenkins.Description=See the version and license information diff --git a/core/src/main/resources/hudson/PluginManager/advanced.jelly b/core/src/main/resources/hudson/PluginManager/advanced.jelly index c7431659f0..131748ca4c 100644 --- a/core/src/main/resources/hudson/PluginManager/advanced.jelly +++ b/core/src/main/resources/hudson/PluginManager/advanced.jelly @@ -34,6 +34,7 @@ THE SOFTWARE.
+

${%HTTP Proxy Configuration}

@@ -45,6 +46,7 @@ THE SOFTWARE. +

${%Upload Plugin}

@@ -63,6 +65,7 @@ THE SOFTWARE.
+

${%Update Site}

@@ -72,6 +75,7 @@ THE SOFTWARE. +