23
23
*/
24
24
package org .jenkinsci .plugins .matrixauth ;
25
25
26
+ import hudson .Util ;
26
27
import hudson .model .Descriptor ;
27
28
import hudson .security .Permission ;
28
29
import hudson .security .ProjectMatrixAuthorizationStrategy ;
35
36
import org .kohsuke .accmod .Restricted ;
36
37
import org .kohsuke .accmod .restrictions .NoExternalUse ;
37
38
import org .kohsuke .stapler .StaplerRequest ;
39
+ import org .kohsuke .stapler .StaplerRequest2 ;
38
40
39
41
/**
40
42
* Interface with default methods common to all authorization related property descriptors.
@@ -48,8 +50,34 @@ public interface AuthorizationPropertyDescriptor<T extends AuthorizationProperty
48
50
49
51
T create ();
50
52
53
+ default T createNewInstance (StaplerRequest2 req , JSONObject formData , boolean hasOptionalWrap )
54
+ throws Descriptor .FormException {
55
+ if (Util .isOverridden (
56
+ AuthorizationPropertyDescriptor .class ,
57
+ getClass (),
58
+ "createNewInstance" ,
59
+ StaplerRequest .class ,
60
+ JSONObject .class ,
61
+ boolean .class )) {
62
+ return createNewInstance (
63
+ req != null ? StaplerRequest .fromStaplerRequest2 (req ) : null , formData , hasOptionalWrap );
64
+ } else {
65
+ return createNewInstanceImpl (req , formData , hasOptionalWrap );
66
+ }
67
+ }
68
+
69
+ /**
70
+ * @deprecated use {@link #createNewInstance(StaplerRequest2, JSONObject, boolean)}
71
+ */
72
+ @ Deprecated
51
73
default T createNewInstance (StaplerRequest req , JSONObject formData , boolean hasOptionalWrap )
52
74
throws Descriptor .FormException {
75
+ return createNewInstanceImpl (
76
+ req != null ? StaplerRequest .toStaplerRequest2 (req ) : null , formData , hasOptionalWrap );
77
+ }
78
+
79
+ private T createNewInstanceImpl (StaplerRequest2 req , JSONObject formData , boolean hasOptionalWrap )
80
+ throws Descriptor .FormException {
53
81
if (hasOptionalWrap ) {
54
82
formData = formData .getJSONObject ("useProjectSecurity" );
55
83
if (formData .isNullObject ()) return null ;
0 commit comments