From b4c4f285cfc446c32e7a8ceaa3770ca0c7507c76 Mon Sep 17 00:00:00 2001 From: "k.triantafyllou" Date: Wed, 15 Jun 2022 15:03:21 +0300 Subject: [PATCH] Make changes regardingh new registry version --- .../controllers/AdminController.java | 2 +- .../controllers/CuratorController.java | 3 +-- .../controllers/MemberController.java | 3 +-- .../controllers/SuperAdminController.java | 3 +-- .../services/RegistryService.java | 18 +++--------------- .../dnetrolemanagement/utils/HttpUtils.java | 12 ++++++++++-- .../dnetrolemanagement/utils/JsonUtils.java | 8 ++++++-- 7 files changed, 23 insertions(+), 26 deletions(-) diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/AdminController.java b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/AdminController.java index 5d282cb..828bd5d 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/AdminController.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/AdminController.java @@ -84,7 +84,7 @@ public class AdminController { Integer role = registryService.getRoleId(coPersonId, couId); if (role != null || force) { if (role == null) { - registryService.assignMemberRole(coPersonId, couId, role); + registryService.assignMemberRole(coPersonId, couId); authoritiesUpdater.addRole(identifier, new SimpleGrantedAuthority(AuthoritiesUtils.member(type, id))); } if (registryService.getUserAdminGroup(coPersonId, couId) == null) { diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/CuratorController.java b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/CuratorController.java index 543c5f7..2e13023 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/CuratorController.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/CuratorController.java @@ -80,8 +80,7 @@ public class CuratorController { Integer couId = (temp != null)?temp:registryService.createRole(AuthoritiesUtils.curatorRole(type), ""); coPersonIds.forEach(coPersonId -> { String identifier = registryService.getIdentifierByCoPersonId(coPersonId); - Integer role = registryService.getRoleId(coPersonId, couId); - registryService.assignMemberRole(coPersonId, couId, role); + registryService.assignMemberRole(coPersonId, couId); authoritiesUpdater.addRole(identifier, new SimpleGrantedAuthority(AuthoritiesUtils.curator(type))); }); return ResponseEntity.ok(new Response("Role has been assigned successfully")); diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/MemberController.java b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/MemberController.java index 9106d89..5acdf24 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/MemberController.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/MemberController.java @@ -103,8 +103,7 @@ public class MemberController { Integer couId = (temp != null) ? temp : registryService.createRole(AuthoritiesUtils.memberRole(type, id), ""); coPersonIds.forEach(coPersonId -> { String identifier = registryService.getIdentifierByCoPersonId(coPersonId); - Integer role = registryService.getRoleId(coPersonId, couId); - registryService.assignMemberRole(coPersonId, couId, role); + registryService.assignMemberRole(coPersonId, couId); authoritiesUpdater.addRole(identifier, new SimpleGrantedAuthority(AuthoritiesUtils.member(type, id))); }); return ResponseEntity.ok(new Response("Role has been assigned successfully")); diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/SuperAdminController.java b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/SuperAdminController.java index c370625..14c0ae2 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/SuperAdminController.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/SuperAdminController.java @@ -59,8 +59,7 @@ public class SuperAdminController { if (couId != null) { coPersonIds.forEach(coPersonId -> { String identifier = registryService.getIdentifierByCoPersonId(coPersonId); - Integer role = registryService.getRoleId(coPersonId, couId); - registryService.assignMemberRole(coPersonId, couId, role); + registryService.assignMemberRole(coPersonId, couId); authoritiesUpdater.addRole(identifier, new SimpleGrantedAuthority(AuthoritiesUtils.PORTAL_ADMIN)); }); return ResponseEntity.ok(new Response("Role has been assigned successfully")); diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/services/RegistryService.java b/src/main/java/eu/dnetlib/dnetrolemanagement/services/RegistryService.java index dde4dae..b616686 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/services/RegistryService.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/services/RegistryService.java @@ -3,7 +3,6 @@ package eu.dnetlib.dnetrolemanagement.services; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import eu.dnetlib.dnetrolemanagement.config.properties.RegistryProperties; import eu.dnetlib.dnetrolemanagement.utils.HttpUtils; import eu.dnetlib.dnetrolemanagement.utils.JsonUtils; import org.apache.log4j.Logger; @@ -19,15 +18,12 @@ public class RegistryService { private static final Logger logger = Logger.getLogger(RegistryService.class); - private final String coid; - public HttpUtils httpUtils; public JsonUtils jsonUtils; @Autowired - public RegistryService(HttpUtils httpUtils, JsonUtils jsonUtils, RegistryProperties registryProperties) { - this.coid = registryProperties.getCoid(); + public RegistryService(HttpUtils httpUtils, JsonUtils jsonUtils) { this.httpUtils = httpUtils; this.jsonUtils = jsonUtils; } @@ -39,7 +35,6 @@ public class RegistryService { if (email != null) { List coPersonIds = new ArrayList<>(); Map params = new HashMap<>(); - params.put("coid", coid); params.put("mail", email); JsonElement response = httpUtils.get("co_people.json", params); if (response != null) { @@ -71,7 +66,6 @@ public class RegistryService { public Integer getCoPersonIdByIdentifier(String sub) { Map params = new HashMap<>(); - params.put("coid", coid); params.put("search.identifier", sub); JsonElement response = httpUtils.get("co_people.json", params); return (response != null) ? response.getAsJsonObject().get("CoPeople").getAsJsonArray().get(0).getAsJsonObject().get("Id").getAsInt() : null; @@ -97,7 +91,6 @@ public class RegistryService { */ public JsonArray getCous(String name) { Map params = new HashMap<>(); - params.put("coid", coid); if (name != null) { params.put("name", name.toLowerCase()); } @@ -186,7 +179,6 @@ public class RegistryService { */ public JsonArray getCouGroups(Integer couId) { Map params = new HashMap<>(); - params.put("coid", coid); params.put("couid", couId.toString()); JsonElement response = httpUtils.get("co_groups.json", params); return (response != null) ? response.getAsJsonObject().get("CoGroups").getAsJsonArray() : new JsonArray(); @@ -285,12 +277,8 @@ public class RegistryService { /** * 15. Assign a member role to a User */ - public void assignMemberRole(Integer coPersonId, Integer couId, Integer id) { - if (id != null) { - httpUtils.put("co_person_roles/" + id + ".json", jsonUtils.coPersonRoles(coPersonId, couId, "Active")); - } else { - httpUtils.post("co_person_roles.json", jsonUtils.coPersonRoles(coPersonId, couId, "Active")); - } + public void assignMemberRole(Integer coPersonId, Integer couId) { + httpUtils.post("co_person_roles.json", jsonUtils.coPersonRoles(coPersonId, couId, "Active")); } /** diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/utils/HttpUtils.java b/src/main/java/eu/dnetlib/dnetrolemanagement/utils/HttpUtils.java index 58bc233..8146edc 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/utils/HttpUtils.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/utils/HttpUtils.java @@ -12,6 +12,7 @@ import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; import java.nio.charset.Charset; +import java.util.HashMap; import java.util.Map; @Component @@ -32,7 +33,7 @@ public class HttpUtils { headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity request = new HttpEntity<>(body.toString(), headers); ResponseEntity responseEntity = restTemplate.exchange(registryProperties.getIssuer() + path, HttpMethod.POST, request, String.class); - if (responseEntity.getBody() != null) { + if (responseEntity.getStatusCode().is2xxSuccessful() && responseEntity.getBody() != null) { return new JsonParser().parse(responseEntity.getBody()); } else { return null; @@ -54,7 +55,7 @@ public class HttpUtils { public JsonElement get(String path, Map params) { RestTemplate restTemplate = new RestTemplate(); - String url = registryProperties.getIssuer() + path + ((params != null) ? createParams(params) : null); + String url = registryProperties.getIssuer() + path + createParams(addCoId(params)); ResponseEntity responseEntity = restTemplate.exchange (url, HttpMethod.GET, new HttpEntity<>(createHeaders(registryProperties.getUser(), registryProperties.getPassword())), String.class); if (responseEntity.getBody() != null) { @@ -76,6 +77,13 @@ public class HttpUtils { } } + private Map addCoId(Map params) { + if(params == null) { + params = new HashMap<>(); + } + params.put("coid", registryProperties.getCoid()); + return params; + } private String createParams(Map params) { StringBuilder ret = new StringBuilder("?"); diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/utils/JsonUtils.java b/src/main/java/eu/dnetlib/dnetrolemanagement/utils/JsonUtils.java index 1668f36..337d1d9 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/utils/JsonUtils.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/utils/JsonUtils.java @@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Arrays; +import java.util.Date; import java.util.Optional; @Component @@ -51,8 +52,11 @@ public class JsonUtils { coPersonRole.addProperty("Title", ""); coPersonRole.addProperty("O", "Openaire"); coPersonRole.addProperty("Status", status); - coPersonRole.addProperty("ValidFrom", ""); - coPersonRole.addProperty("ValidThrough", ""); + if(status.equals("Active")) { + coPersonRole.addProperty("ValidFrom", new Date().toString()); + } else { + coPersonRole.addProperty("ValidThrough", new Date().toString()); + } coPersonRoles.add(coPersonRole); role.addProperty("RequestType", "CoPersonRoles"); role.addProperty("Version", version);