diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/SuperAdminController.java b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/SuperAdminController.java index bd3e84c..9ec988b 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/SuperAdminController.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/SuperAdminController.java @@ -54,10 +54,11 @@ public class SuperAdminController { * */ @RequestMapping(value = "/assign", method = RequestMethod.POST) - public ResponseEntity assignRole(@RequestParam(required = false) String email) { + public ResponseEntity assignRole(@RequestParam(required = false) String email, + @RequestParam(required = false, defaultValue = "false") boolean superAdmin) { List coPersonIds = registryService.getCoPersonIdsByEmail(email); if (coPersonIds.size() > 0) { - Integer couId = registryService.getCouId(AuthoritiesUtils.portalAdminRole()); + Integer couId = registryService.getCouId(superAdmin?AuthoritiesUtils.superAdminRole():AuthoritiesUtils.portalAdminRole()); if (couId != null) { coPersonIds.forEach(coPersonId -> { String identifier = registryService.getIdentifierByCoPersonId(coPersonId); @@ -75,10 +76,11 @@ public class SuperAdminController { * Remove portal admin role from logged in user or user with @email */ @RequestMapping(value = "/remove", method = RequestMethod.DELETE) - public ResponseEntity removeRole( @RequestParam(required = false) String email) { + public ResponseEntity removeRole( @RequestParam(required = false) String email, + @RequestParam(required = false, defaultValue = "false") boolean superAdmin) { List coPersonIds = registryService.getCoPersonIdsByEmail(email); if (coPersonIds.size() > 0) { - Integer couId = registryService.getCouId(AuthoritiesUtils.portalAdminRole()); + Integer couId = registryService.getCouId(superAdmin?AuthoritiesUtils.superAdminRole():AuthoritiesUtils.portalAdminRole()); if (couId != null) { coPersonIds.forEach(coPersonId -> { String identifier = registryService.getIdentifierByCoPersonId(coPersonId); diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/utils/AuthoritiesUtils.java b/src/main/java/eu/dnetlib/dnetrolemanagement/utils/AuthoritiesUtils.java index bc61874..2c4ea39 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/utils/AuthoritiesUtils.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/utils/AuthoritiesUtils.java @@ -7,6 +7,11 @@ import org.springframework.security.core.context.SecurityContextHolder; public class AuthoritiesUtils { public static String PORTAL_ADMIN = "PORTAL_ADMINISTRATOR"; + public static String SUPER_ADMIN = "SUPER_ADMINISTRATOR"; + + public static String superAdminRole() { + return "Super Administrator"; + } public static String portalAdminRole() { return "Portal Administrator";