Skip to content

Commit

Permalink
[JENKINS-21173] Anonymous Users Can Configure Priorities
Browse files Browse the repository at this point in the history
Optionally only Administrators are now allowed
to edit Job Priorities
  • Loading branch information
emsa23 committed Jan 1, 2014
1 parent 197347b commit 8d41a04
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 2 deletions.
16 changes: 14 additions & 2 deletions src/main/java/jenkins/advancedqueue/PriorityConfiguration.java
Expand Up @@ -34,6 +34,7 @@
import hudson.model.RootAction;
import hudson.model.TopLevelItem;
import hudson.model.View;
import hudson.security.Permission;
import hudson.util.FormValidation;
import hudson.util.ListBoxModel;

Expand Down Expand Up @@ -98,7 +99,7 @@ public int compare(JobGroup.PriorityStrategyHolder o1, JobGroup.PriorityStrategy
}

public String getIconFileName() {
if (PrioritySorterConfiguration.get().getLegacyMode()) {
if (!checkActive()) {
return null;
}
return "/plugin/PrioritySorter/advqueue.png";
Expand All @@ -110,11 +111,22 @@ public String getDisplayName() {
}

public String getUrlName() {
if (PrioritySorterConfiguration.get().getLegacyMode()) {
if (!checkActive()) {
return null;
}
return "advanced-build-queue";
}

private boolean checkActive() {
PrioritySorterConfiguration configuration = PrioritySorterConfiguration.get();
if(configuration.getLegacyMode()) {
return false;
}
if(configuration.getOnlyAdminsMayEditPriorityConfiguration()) {
return Jenkins.getInstance().getACL().hasPermission(Jenkins.ADMINISTER);
}
return true;
}

public List<JobGroup> getJobGroups() {
return jobGroups;
Expand Down
Expand Up @@ -66,6 +66,8 @@ public class PrioritySorterConfiguration extends GlobalConfiguration {

private boolean allowPriorityOnJobs;

private boolean onlyAdminsMayEditPriorityConfiguration = false;

private SorterStrategy strategy;

public PrioritySorterConfiguration() {
Expand Down Expand Up @@ -95,6 +97,7 @@ public boolean configure(StaplerRequest req, JSONObject json) throws FormExcepti
throw new FormException(numberOfPrioritiesCheck.getMessage(), "numberOfPriorities");
}
//
onlyAdminsMayEditPriorityConfiguration = json.getBoolean("onlyAdminsMayEditPriorityConfiguration");
allowPriorityOnJobs = json.getBoolean("allowPriorityOnJobs");
if (getLegacyMode()) {
Boolean advanced = json.getBoolean("advanced");
Expand All @@ -116,6 +119,10 @@ public boolean getAllowPriorityOnJobs() {
return allowPriorityOnJobs;
}

public boolean getOnlyAdminsMayEditPriorityConfiguration() {
return onlyAdminsMayEditPriorityConfiguration;
}

public SorterStrategy getStrategy() {
return strategy;
}
Expand Down
Expand Up @@ -13,6 +13,9 @@
<f:dropdownDescriptorSelector field="strategy" title="${%Strategy}"/>
<f:entry title="Allow priorities directly on Jobs" description="Check if you still want to have the ability to set priority directly on Jobs" field="allowPriorityOnJobs">
<f:checkbox id="ps_allowPriorityOnJobs" name="allowPriorityOnJobs" checked="${allowPriorityOnJobs}"/>
</f:entry>
<f:entry title="Only Admins can edit Job Priorities" description="Check if only Administrators should be allowed to view and edit the Job Priorities" field="onlyAdminsMayEditPriorityConfiguration">
<f:checkbox name="onlyAdminsMayEditPriorityConfiguration" checked="${onlyAdminsMayEditPriorityConfiguration}"/>
</f:entry>
</f:optionalBlock>
</j:if>
Expand All @@ -22,6 +25,9 @@
<f:entry title="Allow priorities directly on Jobs" description="Check if you still want to have the ability to set priority directly on Jobs" field="allowPriorityOnJobs">
<f:checkbox id="ps_allowPriorityOnJobs" name="allowPriorityOnJobs" checked="${allowPriorityOnJobs}"/>
</f:entry>
<f:entry title="Only Admins can edit Job Priorities" description="Check if only Administrators should be allowed to view and edit the Job Priorities" field="onlyAdminsMayEditPriorityConfiguration">
<f:checkbox name="onlyAdminsMayEditPriorityConfiguration" checked="${onlyAdminsMayEditPriorityConfiguration}"/>
</f:entry>
</j:if>

</f:section>
Expand Down

0 comments on commit 8d41a04

Please sign in to comment.