Skip to content

Commit 6e53310

Browse files
committed
Adds @post and permission check
1 parent 659d306 commit 6e53310

2 files changed

Lines changed: 26 additions & 5 deletions

File tree

src/main/java/org/jenkinsci/plugins/vb6/VB6Builder.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,24 @@
55
import hudson.Extension;
66
import hudson.FilePath;
77
import hudson.model.AbstractProject;
8-
import hudson.model.Result;
8+
import hudson.model.Item;
99
import hudson.model.Run;
1010
import hudson.model.TaskListener;
1111
import hudson.tasks.Builder;
1212
import hudson.tasks.BuildStepDescriptor;
1313
import hudson.util.ArgumentListBuilder;
1414
import hudson.util.FormValidation;
15+
import jenkins.model.Jenkins;
1516
import jenkins.tasks.SimpleBuildStep;
1617
import net.sf.json.JSONObject;
1718
import org.jenkinsci.Symbol;
1819
import org.kohsuke.stapler.DataBoundConstructor;
1920
import org.kohsuke.stapler.DataBoundSetter;
2021
import org.kohsuke.stapler.QueryParameter;
2122
import org.kohsuke.stapler.StaplerRequest2;
23+
import org.kohsuke.stapler.verb.POST;
2224

23-
import java.io.File;
2425
import java.io.IOException;
25-
import java.nio.file.Files;
26-
27-
import static java.io.File.createTempFile;
2826

2927
/**
3028
* Sample {@link Builder}.
@@ -165,7 +163,10 @@ public DescriptorImpl() {
165163
}
166164

167165

166+
@POST
168167
public FormValidation doCheckProjectFile(@QueryParameter String value) {
168+
Jenkins.get().checkPermission(Item.CONFIGURE);
169+
169170
if(Strings.isNullOrEmpty(value)){
170171
return FormValidation.error("value is empty");
171172
} else{

src/test/java/org/jenkinsci/plugins/vb6/VB6BuilderTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import hudson.model.FreeStyleProject;
88
import hudson.model.Result;
99
import hudson.model.queue.QueueTaskFuture;
10+
import org.htmlunit.html.HtmlForm;
11+
import org.htmlunit.html.HtmlPage;
1012
import org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition;
1113
import org.jenkinsci.plugins.workflow.job.WorkflowJob;
1214
import org.jenkinsci.plugins.workflow.job.WorkflowRun;
@@ -15,13 +17,31 @@
1517
import org.jvnet.hudson.test.JenkinsRule;
1618
import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
1719
import org.jvnet.hudson.test.recipes.LocalData;
20+
import org.xml.sax.SAXException;
1821

22+
import java.io.IOException;
1923
import java.nio.file.Files;
2024
import java.nio.file.Paths;
2125

2226
@WithJenkins
2327
public class VB6BuilderTest {
2428

29+
@Test
30+
void configRoundTrip(JenkinsRule j) throws Exception {
31+
FreeStyleProject p = j.createFreeStyleProject();
32+
VB6Builder orig = new VB6Builder("projectFile1.vbp");
33+
p.getBuildersList().add(orig);
34+
35+
try (JenkinsRule.WebClient webClient = j.createWebClient()) {
36+
HtmlPage page = webClient.getPage(p, "configure");
37+
HtmlForm form = page.getFormByName("config");
38+
j.submit(form);
39+
}
40+
41+
j.assertEqualBeans(orig, p.getBuildersList().get(VB6Builder.class), "projectFile");
42+
43+
}
44+
2545
@Test
2646
void testUnix(JenkinsRule j) throws Exception {
2747
Assumptions.assumeFalse(Functions.isWindows());

0 commit comments

Comments
 (0)