2424import com .microfocus .octane .plugins .descriptors .OctaneEntityTypeManager ;
2525import com .microfocus .octane .plugins .rest .ProxyConfiguration ;
2626import com .microfocus .octane .plugins .rest .RestStatusException ;
27- import com .microfocus .octane .plugins .rest .entities .OctaneEntityCollection ;
28- import com .microfocus .octane .plugins .rest .query .LogicalQueryPhrase ;
29- import com .microfocus .octane .plugins .rest .query .QueryPhrase ;
3027import org .apache .commons .lang .StringUtils ;
3128import org .slf4j .Logger ;
3229import org .slf4j .LoggerFactory ;
@@ -63,33 +60,19 @@ public ConfigResource(UserManager userManager) {
6360 @ GET
6461 @ Path ("/workspaces-dialog/additional-data" )
6562 public Response getDataForWorkspaceDialog (@ QueryParam ("space-config-id" ) String spaceConfId , @ QueryParam ("workspace-config-id" ) String workspaceConfId ) {
66- if (!validateUserPermission ()) {
63+ if (!hasPermission ()) {
6764 return Response .status (Status .FORBIDDEN ).build ();
6865 }
6966
70- SpaceConfiguration spConfig = ConfigurationManager .getInstance ().getSpaceConfigurationById (spaceConfId , true ).get ();
71-
72- Set <Long > usedWorkspaces = spaceConfId == null ? Collections .emptySet () : ConfigurationManager .getInstance ().getWorkspaceConfigurations ().stream ()
73- .filter (w -> w .getSpaceConfigurationId ().equals (spaceConfId ))
74- .map (WorkspaceConfiguration ::getWorkspaceId ).collect (Collectors .toSet ());
75- Set <String > usedJiraProjects = ConfigurationManager .getInstance ().getWorkspaceConfigurations ().stream ().flatMap (c -> c .getJiraProjects ().stream ()).collect (Collectors .toSet ());
76-
77- if (workspaceConfId != null ) {
78- WorkspaceConfiguration wc = ConfigurationManager .getInstance ().getWorkspaceConfigurationById (workspaceConfId , true ).get ();
79- usedWorkspaces .remove (wc .getWorkspaceId ());
80- usedJiraProjects .removeAll (wc .getJiraProjects ());
81- }
82-
8367 try {
84- Collection <KeyValueItem > select2workspaces = ConfigurationUtil .getValidWorkspaces (spConfig , usedWorkspaces );
68+ Collection <KeyValueItem > select2workspaces = ConfigurationUtil .getValidWorkspaces (spaceConfId , workspaceConfId );
8569
86- Collection <KeyValueItem > select2IssueTypes = ComponentAccessor .getConstantsManager ().getAllIssueTypeObjects ()
87- .stream ().map (e -> new KeyValueItem (e .getName (), e .getName ())).sorted (Comparator .comparing (KeyValueItem ::getId )).collect (Collectors .toList ());
70+ Collection <KeyValueItem > select2Projects = ConfigurationUtil .getValidProjects (workspaceConfId );
8871
89- Collection <KeyValueItem > select2Projects = ComponentAccessor .getProjectManager ().getProjectObjects ()
72+ Collection <KeyValueItem > select2IssueTypes = ComponentAccessor .getConstantsManager ().getAllIssueTypeObjects ()
9073 .stream ()
91- .filter (e -> ! usedJiraProjects . contains ( e . getKey ()))
92- .map ( e -> new KeyValueItem ( e . getKey (), e . getKey ())). sorted (Comparator .comparing (KeyValueItem ::getId ))
74+ .map (e -> new KeyValueItem ( e . getName (), e . getName ()))
75+ .sorted (Comparator .comparing (KeyValueItem ::getId ))
9376 .collect (Collectors .toList ());
9477
9578 Map <String , Object > data = new HashMap <>();
@@ -101,6 +84,7 @@ public Response getDataForWorkspaceDialog(@QueryParam("space-config-id") String
10184 } catch (IllegalArgumentException e ) {
10285 return Response .status (Status .INTERNAL_SERVER_ERROR ).entity (e .getMessage ()).build ();
10386 } catch (RestStatusException e ) {
87+ SpaceConfiguration spConfig = ConfigurationManager .getInstance ().getSpaceConfigurationById (spaceConfId , true ).get ();
10488 RuntimeException translatedException = ConfigurationUtil .tryTranslateException (e , spConfig );
10589 return Response .status (Status .INTERNAL_SERVER_ERROR ).entity (translatedException .getMessage ()).build ();
10690 }
@@ -109,7 +93,7 @@ public Response getDataForWorkspaceDialog(@QueryParam("space-config-id") String
10993 @ GET
11094 @ Path ("/workspaces" )
11195 public Response getAllWorkspaceConfigurations () {
112- if (!validateUserPermission ()) {
96+ if (!hasPermission ()) {
11397 return Response .status (Status .FORBIDDEN ).build ();
11498 }
11599 Collection <WorkspaceConfigurationOutgoing > result = ConfigurationManager .getInstance ().getWorkspaceConfigurations ()
@@ -123,7 +107,7 @@ public Response getAllWorkspaceConfigurations() {
123107 @ GET
124108 @ Path ("/workspaces/{id}" )
125109 public Response getWorkspaceConfigurationById (@ PathParam ("id" ) String id ) {
126- if (!validateUserPermission ()) {
110+ if (!hasPermission ()) {
127111 return Response .status (Status .FORBIDDEN ).build ();
128112 }
129113
@@ -139,7 +123,7 @@ public Response getWorkspaceConfigurationById(@PathParam("id") String id) {
139123 @ GET
140124 @ Path ("/workspaces/supported-octane-types" )
141125 public Response getSupportedOctaneTypes (@ QueryParam ("space-config-id" ) String spaceConfigurationId , @ QueryParam ("workspace-id" ) long workspaceId , @ QueryParam ("udf-name" ) String udfName ) {
142- if (!validateUserPermission ()) {
126+ if (!hasPermission ()) {
143127 return Response .status (Status .FORBIDDEN ).build ();
144128 }
145129
@@ -152,7 +136,7 @@ public Response getSupportedOctaneTypes(@QueryParam("space-config-id") String sp
152136 @ GET
153137 @ Path ("/workspaces/possible-jira-fields" )
154138 public Response getPossibleJiraFields (@ QueryParam ("space-config-id" ) String spaceConfigurationId , @ QueryParam ("workspace-id" ) long workspaceId ) {
155- if (!validateUserPermission ()) {
139+ if (!hasPermission ()) {
156140 return Response .status (Status .FORBIDDEN ).build ();
157141 }
158142
@@ -164,7 +148,7 @@ public Response getPossibleJiraFields(@QueryParam("space-config-id") String spac
164148 @ POST
165149 @ Path ("/workspaces" )
166150 public Response addWorkspaceConfiguration (WorkspaceConfigurationOutgoing wco ) {
167- if (!validateUserPermission ()) {
151+ if (!hasPermission ()) {
168152 return Response .status (Status .FORBIDDEN ).build ();
169153 }
170154
@@ -181,7 +165,7 @@ public Response addWorkspaceConfiguration(WorkspaceConfigurationOutgoing wco) {
181165 @ PUT
182166 @ Path ("/workspaces/{workspaceConfigurationId}" )
183167 public Response updateWorkspaceConfiguration (@ PathParam ("workspaceConfigurationId" ) String workspaceConfigurationId , WorkspaceConfigurationOutgoing wco ) {
184- if (!validateUserPermission ()) {
168+ if (!hasPermission ()) {
185169 return Response .status (Status .FORBIDDEN ).build ();
186170 }
187171
@@ -200,7 +184,7 @@ public Response updateWorkspaceConfiguration(@PathParam("workspaceConfigurationI
200184 @ DELETE
201185 @ Path ("/workspaces/{id}" )
202186 public Response deleteWorkspaceConfigurationById (@ PathParam ("id" ) String id ) {
203- if (!validateUserPermission ()) {
187+ if (!hasPermission ()) {
204188 return Response .status (Status .FORBIDDEN ).build ();
205189 }
206190
@@ -216,7 +200,7 @@ public Response deleteWorkspaceConfigurationById(@PathParam("id") String id) {
216200 @ Produces (MediaType .APPLICATION_JSON )
217201 @ Path ("/proxy" )
218202 public Response getProxy () {
219- if (!validateUserPermission ()) {
203+ if (!hasPermission ()) {
220204 return Response .status (Status .FORBIDDEN ).build ();
221205 }
222206
@@ -244,7 +228,7 @@ public Response getProxy() {
244228 @ Consumes (MediaType .APPLICATION_JSON )
245229 @ Path ("/proxy" )
246230 public Response setProxy (final ProxyConfigurationOutgoing proxyOutgoing ) {
247- if (!validateUserPermission ()) {
231+ if (!hasPermission ()) {
248232 return Response .status (Status .FORBIDDEN ).build ();
249233 }
250234
@@ -269,7 +253,7 @@ public Response setProxy(final ProxyConfigurationOutgoing proxyOutgoing) {
269253 @ Produces (MediaType .APPLICATION_JSON )
270254 @ Path ("/spaces" )
271255 public Response getSpaceConfigurations () {
272- if (!validateUserPermission ()) {
256+ if (!hasPermission ()) {
273257 return Response .status (Status .FORBIDDEN ).build ();
274258 }
275259
@@ -284,11 +268,12 @@ public Response getSpaceConfigurations() {
284268 @ Consumes (MediaType .APPLICATION_JSON )
285269 @ Produces (MediaType .APPLICATION_JSON )
286270 public Response addSpaceConfiguration (SpaceConfigurationOutgoing sco ) {
287- if (!validateUserPermission ()) {
271+ if (!hasPermission ()) {
288272 return Response .status (Status .FORBIDDEN ).build ();
289273 }
290274
291275 try {
276+ ConfigurationUtil .validateName (sco );
292277 SpaceConfiguration spaceConfig = ConfigurationUtil .validateRequiredAndConvertToInternal (sco , true );
293278 ConfigurationUtil .doSpaceConfigurationUniquenessValidation (spaceConfig );
294279 ConfigurationManager .getInstance ().addSpaceConfiguration (spaceConfig );
@@ -303,12 +288,13 @@ public Response addSpaceConfiguration(SpaceConfigurationOutgoing sco) {
303288 @ Consumes (MediaType .APPLICATION_JSON )
304289 @ Path ("spaces/{id}" )
305290 public Response updateSpaceConfiguration (@ PathParam ("id" ) String id , final SpaceConfigurationOutgoing sco ) {
306- if (!validateUserPermission ()) {
291+ if (!hasPermission ()) {
307292 return Response .status (Status .FORBIDDEN ).build ();
308293 }
309294
310295 try {
311296 sco .setId (id );
297+ ConfigurationUtil .validateName (sco );
312298 SpaceConfiguration spaceConfig = ConfigurationUtil .validateRequiredAndConvertToInternal (sco , false );
313299 ConfigurationUtil .doSpaceConfigurationUniquenessValidation (spaceConfig );
314300 SpaceConfiguration updated = ConfigurationManager .getInstance ().updateSpaceConfiguration (spaceConfig );
@@ -322,7 +308,7 @@ public Response updateSpaceConfiguration(@PathParam("id") String id, final Space
322308 @ Path ("spaces/{id}" )
323309 @ Produces (MediaType .APPLICATION_JSON )
324310 public Response deleteSpaceConfiguration (@ PathParam ("id" ) String id ) {
325- if (!validateUserPermission ()) {
311+ if (!hasPermission ()) {
326312 return Response .status (Status .FORBIDDEN ).build ();
327313 }
328314
@@ -339,7 +325,7 @@ public Response deleteSpaceConfiguration(@PathParam("id") String id) {
339325 @ Consumes (MediaType .APPLICATION_JSON )
340326 @ Produces (MediaType .APPLICATION_JSON )
341327 public Response testSpaceConfiguration (SpaceConfigurationOutgoing spaceConfigurationOutgoing ) {
342- if (!validateUserPermission ()) {
328+ if (!hasPermission ()) {
343329 return Response .status (Status .FORBIDDEN ).build ();
344330 }
345331
@@ -353,7 +339,7 @@ public Response testSpaceConfiguration(SpaceConfigurationOutgoing spaceConfigura
353339 }
354340 }
355341
356- private boolean validateUserPermission () {
342+ private boolean hasPermission () {
357343 UserProfile username = userManager .getRemoteUser (request );
358344 return isAdministrator (userManager , username );
359345 }
0 commit comments