From 696049ee0558c869b44b9cacfe972ad85c6fba62 Mon Sep 17 00:00:00 2001 From: "k.triantafyllou" Date: Fri, 15 Dec 2023 16:53:13 +0200 Subject: [PATCH] Fix path variables for type to accept '.' in all cases --- .../controllers/AdminController.java | 6 +++--- .../controllers/CuratorController.java | 9 +++++---- .../controllers/MemberController.java | 10 +++++----- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/AdminController.java b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/AdminController.java index f02f01f..8f9707b 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/AdminController.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/AdminController.java @@ -36,7 +36,7 @@ public class AdminController { /** * Get the user info of the managers of a type(Community, etc.) with id(ee, egi, etc.) */ - @RequestMapping(value = "/{type}/{id}", method = RequestMethod.GET) + @RequestMapping(value = "/{type:.+}/{id}", method = RequestMethod.GET) public ResponseEntity getAll(@PathVariable("type") String type, @PathVariable("id") String id, @RequestParam(value = "email", required = false, defaultValue = "true") boolean email, @RequestParam(value = "name", required = false, defaultValue = "true") boolean name) { @@ -54,7 +54,7 @@ public class AdminController { * Assign admin role to logged-in user or user with @email * If role doesn't exist or user is not a member of this group already, use force=true to create and assign both roles. */ - @RequestMapping(value = "/{type}/{id}", method = RequestMethod.POST) + @RequestMapping(value = "/{type:.+}/{id}", method = RequestMethod.POST) public ResponseEntity assignRole(@PathVariable("type") String type, @PathVariable("id") String id, @RequestParam(required = false) String email, @RequestParam(required = false) String identifier, @RequestParam(value = "force", defaultValue = "false") boolean force) { @@ -101,7 +101,7 @@ public class AdminController { /** * Remove admin role from logged-in user or user with @email */ - @RequestMapping(value = "/{type}/{id}", method = RequestMethod.DELETE) + @RequestMapping(value = "/{type:.+}/{id}", method = RequestMethod.DELETE) public ResponseEntity removeRole(@PathVariable("type") String type, @PathVariable("id") String id, @RequestParam(required = false) String identifier, @RequestParam(required = false) String email) { diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/CuratorController.java b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/CuratorController.java index 2e13023..53b6703 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/CuratorController.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/CuratorController.java @@ -36,9 +36,10 @@ public class CuratorController { /** * Create a new Curator role (only for admins) */ - @RequestMapping(value = "/{type}/create", method = RequestMethod.POST) + @RequestMapping(value = "/{type:.+}/create", method = RequestMethod.POST) public ResponseEntity createRole(@PathVariable("type") String type, @RequestParam(value = "description", required = false) String description) { try { + System.out.println(type); if (registryService.getCouId(AuthoritiesUtils.curatorRole(type)) == null) { registryService.createRole(AuthoritiesUtils.curatorRole(type), description != null?description:""); return ResponseEntity.ok(new Response("Role has been created successfully")); @@ -53,7 +54,7 @@ public class CuratorController { /** * Get the user info of the curators of a type(Community, etc.) */ - @RequestMapping(value = "/{type}", method = RequestMethod.GET) + @RequestMapping(value = "/{type:.+}", method = RequestMethod.GET) public ResponseEntity getAll(@PathVariable("type") String type, @RequestParam(value = "email", required = false, defaultValue = "true") boolean email, @RequestParam(value = "name", required = false, defaultValue = "true") boolean name) { @@ -70,7 +71,7 @@ public class CuratorController { /** * Assign curator role to logged in user or user with @email */ - @RequestMapping(value = "/{type}", method = RequestMethod.POST) + @RequestMapping(value = "/{type:.+}", method = RequestMethod.POST) public ResponseEntity assignRole(@PathVariable("type") String type, @RequestParam(required = false) String email, @RequestParam(value = "force", defaultValue = "false") boolean force) { List coPersonIds = registryService.getCoPersonIdsByEmail(email); @@ -93,7 +94,7 @@ public class CuratorController { /** * Remove curator role from logged in user or user with @email */ - @RequestMapping(value = "/{type}", method = RequestMethod.DELETE) + @RequestMapping(value = "/{type:.+}", method = RequestMethod.DELETE) public ResponseEntity removeRole(@PathVariable("type") String type, @RequestParam(required = false) String email) { List coPersonIds = registryService.getCoPersonIdsByEmail(email); if (coPersonIds.size() > 0) { diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/MemberController.java b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/MemberController.java index d61a533..9a9a2ca 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/MemberController.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/MemberController.java @@ -37,7 +37,7 @@ public class MemberController { /** * Create a new Group for an entity (only for admins) */ - @RequestMapping(value = "/{type}/{id}/create", method = RequestMethod.POST) + @RequestMapping(value = "/{type:.+}/{id}/create", method = RequestMethod.POST) public ResponseEntity createGroup(@PathVariable("type") String type, @PathVariable("id") String id, @RequestParam(value = "description", required = false) String description) { try { @@ -55,7 +55,7 @@ public class MemberController { /** * Get the user info of the members of a type(Community, etc.) with id(ee, egi, etc.) */ - @RequestMapping(value = "/{type}/{id}", method = RequestMethod.GET) + @RequestMapping(value = "/{type:.+}/{id}", method = RequestMethod.GET) public ResponseEntity getAll(@PathVariable("type") String type, @PathVariable("id") String id, @RequestParam(value = "isManager", required = false, defaultValue = "true") boolean isManager, @RequestParam(value = "email", required = false, defaultValue = "true") boolean email, @@ -79,7 +79,7 @@ public class MemberController { /** * Get the number of the members of a type(Community, etc.) with id(ee, egi, etc.) */ - @RequestMapping(value = "/{type}/{id}/count", method = RequestMethod.GET) + @RequestMapping(value = "/{type:.+}/{id}/count", method = RequestMethod.GET) public ResponseEntity getCount(@PathVariable("type") String type, @PathVariable("id") String id) { Integer couId = registryService.getCouId(AuthoritiesUtils.memberRole(type, id)); if (couId != null) { @@ -93,7 +93,7 @@ public class MemberController { * Assign member role to logged-in user or user with @email * If role doesn't exist, use force=true to create and assign the role */ - @RequestMapping(value = "/{type}/{id}", method = RequestMethod.POST) + @RequestMapping(value = "/{type:.+}/{id}", method = RequestMethod.POST) public ResponseEntity assignRole(@PathVariable("type") String type, @PathVariable("id") String id, @RequestParam(required = false) String identifier, @RequestParam(required = false) String email, @@ -118,7 +118,7 @@ public class MemberController { * Remove member role from logged-in user or user with @email * If user is an admin of this group, use force=true to revoke both roles */ - @RequestMapping(value = "/{type}/{id}", method = RequestMethod.DELETE) + @RequestMapping(value = "/{type:.+}/{id}", method = RequestMethod.DELETE) public ResponseEntity removeRole(@PathVariable("type") String type, @PathVariable("id") String id, @RequestParam(required = false) String identifier, @RequestParam(required = false) String email,