Skip to content

Commit c6481b4

Browse files
authored
Merge pull request #378 from amuniz/JENKINS-73163
[JENKINS-73163] Allow users with Overall/Manage permission to configure GitHub Servers
2 parents 5aa9d5c + 3f74022 commit c6481b4

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
<jenkins.version>2.414.3</jenkins.version>
5454
<release.skipTests>false</release.skipTests>
5555
<tagNameFormat>v@{project.version}</tagNameFormat>
56+
<useBeta>true</useBeta> <!-- For Jenkins.MANAGE permission -->
5657
</properties>
5758

5859
<repositories>

src/main/java/org/jenkinsci/plugins/github/config/GitHubServerConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ public String getDisplayName() {
348348
@SuppressWarnings("unused")
349349
public ListBoxModel doFillCredentialsIdItems(@QueryParameter String apiUrl,
350350
@QueryParameter String credentialsId) {
351-
if (!Jenkins.getInstance().hasPermission(Jenkins.ADMINISTER)) {
351+
if (!Jenkins.getInstance().hasPermission(Jenkins.MANAGE)) {
352352
return new StandardListBoxModel().includeCurrentValue(credentialsId);
353353
}
354354
return new StandardListBoxModel()
@@ -367,7 +367,7 @@ public ListBoxModel doFillCredentialsIdItems(@QueryParameter String apiUrl,
367367
public FormValidation doVerifyCredentials(
368368
@QueryParameter String apiUrl,
369369
@QueryParameter String credentialsId) throws IOException {
370-
Jenkins.getActiveInstance().checkPermission(Jenkins.ADMINISTER);
370+
Jenkins.getActiveInstance().checkPermission(Jenkins.MANAGE);
371371

372372
GitHubServerConfig config = new GitHubServerConfig(credentialsId);
373373
config.setApiUrl(apiUrl);

src/main/java/org/jenkinsci/plugins/github/config/HookSecretConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public String getDisplayName() {
6262

6363
@SuppressWarnings("unused")
6464
public ListBoxModel doFillCredentialsIdItems(@QueryParameter String credentialsId) {
65-
if (!Jenkins.getInstance().hasPermission(Jenkins.ADMINISTER)) {
65+
if (!Jenkins.getInstance().hasPermission(Jenkins.MANAGE)) {
6666
return new StandardListBoxModel().includeCurrentValue(credentialsId);
6767
}
6868

src/test/java/org/jenkinsci/plugins/github/config/GitHubServerConfigIntegrationTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,9 @@ public void shouldNotAllow_CredentialsLeakage_usingVerifyCredentials() throws Ex
107107
j.jenkins.setSecurityRealm(j.createDummySecurityRealm());
108108

109109
GlobalMatrixAuthorizationStrategy strategy = new GlobalMatrixAuthorizationStrategy();
110-
strategy.add(Jenkins.ADMINISTER, "admin");
110+
Jenkins.MANAGE.setEnabled(true);
111+
strategy.add(Jenkins.MANAGE, "admin");
112+
strategy.add(Jenkins.READ, "admin");
111113
strategy.add(Jenkins.READ, "user");
112114
j.jenkins.setAuthorizationStrategy(strategy);
113115

@@ -121,7 +123,7 @@ public void shouldNotAllow_CredentialsLeakage_usingVerifyCredentials() throws Ex
121123

122124
assertThat(attackerServlet.secretCreds, isEmptyOrNullString());
123125
}
124-
{ // only admin can verify the credentials
126+
{ // only admin (with Manage permission) can verify the credentials
125127
JenkinsRule.WebClient wc = j.createWebClient();
126128
wc.getOptions().setThrowExceptionOnFailingStatusCode(false);
127129
wc.login("admin");

0 commit comments

Comments
 (0)