From dd6bf694b4b34c155310b08100cc8baaebe3247e Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Mon, 6 Dec 2021 17:45:15 +0100 Subject: [PATCH] Switched user info retrieving to authorization utils library --- .../moderation/thread/ModerationThread.java | 8 +- .../moderation/thread/zulip/ZulipStream.java | 2 +- .../gcat/persistence/ckan/CKANPackage.java | 37 ++--- .../gcube/gcat/persistence/ckan/CKANUser.java | 43 ++++-- .../org/gcube/gcat/social/PortalUser.java | 138 ------------------ .../org/gcube/gcat/social/SocialPost.java | 4 +- .../org/gcube/gcat/social/SocialService.java | 95 ------------ .../org/gcube/gcat/social/SocialUsers.java | 1 + .../gcat/persistence/ckan/CKANGroupTest.java | 4 +- .../ckan/CKANOrganizationTest.java | 37 +++++ .../persistence/ckan/CKANPackageTest.java | 20 ++- .../org/gcube/gcat/social/PortalUserTest.java | 21 --- .../gcube/gcat/social/SocialServiceTest.java | 1 + 13 files changed, 108 insertions(+), 303 deletions(-) delete mode 100644 src/main/java/org/gcube/gcat/social/PortalUser.java delete mode 100644 src/main/java/org/gcube/gcat/social/SocialService.java delete mode 100644 src/test/java/org/gcube/gcat/social/PortalUserTest.java diff --git a/src/main/java/org/gcube/gcat/moderation/thread/ModerationThread.java b/src/main/java/org/gcube/gcat/moderation/thread/ModerationThread.java index aecb5f4..70779ed 100644 --- a/src/main/java/org/gcube/gcat/moderation/thread/ModerationThread.java +++ b/src/main/java/org/gcube/gcat/moderation/thread/ModerationThread.java @@ -52,7 +52,7 @@ public abstract class ModerationThread { public void postItemCreated() throws Exception{ createModerationThread(); - String username = ckanUser.getPortalUser().getNameSurname(); + String username = ckanUser.getNameSurname(); CMItemStatus cmItemStatus = CMItemStatus.PENDING; String message = String.format("@**%s** has created the item with name '%s' (id='%s'). The item is now in **%s** state and must be moderated.", username, itemName, itemID, cmItemStatus.getFancyValue()); @@ -60,7 +60,7 @@ public abstract class ModerationThread { } public void postItemUpdated() throws Exception { - String username = ckanUser.getPortalUser().getNameSurname(); + String username = ckanUser.getNameSurname(); CMItemStatus cmItemStatus = CMItemStatus.PENDING; String message = String.format("@**%s** has updated the item with name '%s' (id='%s'). The item is now in **%s** state and must be moderated.", username, itemName, itemID, cmItemStatus.getFancyValue()); @@ -68,7 +68,7 @@ public abstract class ModerationThread { } public void postItemRejected(String userMessage) throws Exception { - String username = ckanUser.getPortalUser().getNameSurname(); + String username = ckanUser.getNameSurname(); CMItemStatus cmItemStatus = CMItemStatus.REJECTED; String message = String.format("@**%s** has **%s** the item with name '%s' (id='%s'). The author can delete the item or update it to try to meet moderators requests if any.", username, cmItemStatus.getFancyValue(), itemName, itemID); @@ -77,7 +77,7 @@ public abstract class ModerationThread { } public void postItemApproved(String userMessage) throws Exception{ - String username = ckanUser.getPortalUser().getNameSurname(); + String username = ckanUser.getNameSurname(); CMItemStatus cmItemStatus = CMItemStatus.APPROVED; String message = String.format("@**%s** has **%s** the item with name '%s' (id='%s'). The item is now available in the catalogue.", username, cmItemStatus.getFancyValue(), itemName, itemID); diff --git a/src/main/java/org/gcube/gcat/moderation/thread/zulip/ZulipStream.java b/src/main/java/org/gcube/gcat/moderation/thread/zulip/ZulipStream.java index 5177103..42cb61e 100644 --- a/src/main/java/org/gcube/gcat/moderation/thread/zulip/ZulipStream.java +++ b/src/main/java/org/gcube/gcat/moderation/thread/zulip/ZulipStream.java @@ -110,7 +110,7 @@ public class ZulipStream extends ModerationThread { ArrayNode principalsArrayNode = objectMapper.createArrayNode(); // Going to add the item creator - String itemCreatorEmail = ckanUser.getPortalUser().getEMail(); + String itemCreatorEmail = ckanUser.getEMail(); principalsArrayNode.add(itemCreatorEmail); getGCatZulipRestExecutor(); diff --git a/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java b/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java index 4a325fe..3547b02 100644 --- a/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java +++ b/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java @@ -33,7 +33,6 @@ import org.gcube.gcat.api.roles.Role; import org.gcube.gcat.moderation.thread.ModerationThread; import org.gcube.gcat.oldutils.Validator; import org.gcube.gcat.profile.MetadataUtility; -import org.gcube.gcat.social.PortalUser; import org.gcube.gcat.social.SocialPost; import org.gcube.gcat.utils.URIResolver; import org.slf4j.Logger; @@ -287,13 +286,12 @@ public class CKANPackage extends CKAN implements Moderated { objectNode.remove(CAPACITY_KEY); } - PortalUser portalUser = ckanUser.getPortalUser(); - String authorName = String.format("%s %s", portalUser.getSurname(), portalUser.getName()); + String authorName = ckanUser.getSurnameName(); if(authorName==null || authorName.compareTo("")==0) { authorName = ckanUser.getName(); } objectNode.put(AUTHOR_KEY, authorName); - String authorEmail = portalUser.getEMail(); + String authorEmail = ckanUser.getEMail(); objectNode.put(AUTHOR_EMAIL_KEY, authorEmail); @@ -575,7 +573,7 @@ public class CKANPackage extends CKAN implements Moderated { if(queryParameters.containsKey(GCatConstants.OWN_ONLY_QUERY_PARAMETER)) { if(!queryParameters.get(GCatConstants.OWN_ONLY_QUERY_PARAMETER).isEmpty() && Boolean.parseBoolean(queryParameters.get(GCatConstants.OWN_ONLY_QUERY_PARAMETER).get(0))) { - String filter = String.format("%s:%s", AUTHOR_EMAIL_KEY, ckanUser.getPortalUser().getEMail()); + String filter = String.format("%s:%s", AUTHOR_EMAIL_KEY, ckanUser.getEMail()); q = String.format("%s AND %s", q, filter); } } @@ -707,7 +705,7 @@ public class CKANPackage extends CKAN implements Moderated { } protected boolean isItemCreator() { - return result.get(AUTHOR_EMAIL_KEY).asText().compareTo(ckanUser.getPortalUser().getEMail())==0; + return result.get(AUTHOR_EMAIL_KEY).asText().compareTo(ckanUser.getEMail())==0; } protected void readItem() throws Exception { @@ -1057,7 +1055,7 @@ public class CKANPackage extends CKAN implements Moderated { CMItemStatus cmItemStatus = getRequestedCMItemStatus(); - if(!ckanUser.getPortalUser().isCatalogueModerator()) { + if(!ckanUser.isCatalogueModerator()) { switch (ckanUser.getRole()) { case ADMIN: @@ -1065,7 +1063,7 @@ public class CKANPackage extends CKAN implements Moderated { case EDITOR: if(cmItemStatus!=null && cmItemStatus!=CMItemStatus.APPROVED) { - q = String.format("%s AND %s:%s", q, AUTHOR_EMAIL_KEY, ckanUser.getPortalUser().getEMail()); + q = String.format("%s AND %s:%s", q, AUTHOR_EMAIL_KEY, ckanUser.getEMail()); }else{ cmItemStatus = CMItemStatus.APPROVED; } @@ -1110,13 +1108,12 @@ public class CKANPackage extends CKAN implements Moderated { return; } - PortalUser portalUser = ckanUser.getPortalUser(); if(isItemCreator()) { // The author is entitled to read its own items independently from the status return; } - if(ckanUser.getRole() == Role.ADMIN || portalUser.isCatalogueModerator()) { + if(ckanUser.getRole() == Role.ADMIN || ckanUser.isCatalogueModerator()) { // Catalogue-Admin and Catalogue-Moderator are entitled to read items with any statues return; } @@ -1131,8 +1128,6 @@ public class CKANPackage extends CKAN implements Moderated { boolean setToPending = true; - PortalUser portalUser = ckanUser.getPortalUser(); - switch (cmItemStatus) { case APPROVED: if(ckanUser.getRole() != Role.ADMIN && !isItemCreator()) { @@ -1148,7 +1143,7 @@ public class CKANPackage extends CKAN implements Moderated { if(isItemCreator()) { break; } - if(portalUser.isCatalogueModerator()) { + if(ckanUser.isCatalogueModerator()) { break; } throw new ForbiddenException("You are not entitled to update a " + cmItemStatus.getValue() + " item"); @@ -1157,7 +1152,7 @@ public class CKANPackage extends CKAN implements Moderated { if(isItemCreator()) { break; } - if(portalUser.isCatalogueModerator()) { + if(ckanUser.isCatalogueModerator()) { break; } throw new ForbiddenException("You are not entitled to update a " + cmItemStatus.getValue() + " item"); @@ -1180,8 +1175,6 @@ public class CKANPackage extends CKAN implements Moderated { if(isModerationEnabled()) { readItem(); - PortalUser portalUser = ckanUser.getPortalUser(); - if(ckanUser.getRole() == Role.ADMIN) { // Ad Admin can delete any item independently from the status return; @@ -1200,7 +1193,7 @@ public class CKANPackage extends CKAN implements Moderated { if(isItemCreator()) { break; } - if(portalUser.isCatalogueModerator()) { + if(ckanUser.isCatalogueModerator()) { break; } throw new ForbiddenException("You are not entitled to delete a " + cmItemStatus.getValue() + " item"); @@ -1209,7 +1202,7 @@ public class CKANPackage extends CKAN implements Moderated { if(isItemCreator()) { break; } - if(portalUser.isCatalogueModerator()) { + if(ckanUser.isCatalogueModerator()) { break; } throw new ForbiddenException("You are not entitled to update a " + cmItemStatus.getValue() + " item"); @@ -1310,7 +1303,6 @@ public class CKANPackage extends CKAN implements Moderated { try { if(isModerationEnabled()) { readItem(); - PortalUser portalUser = ckanUser.getPortalUser(); CMItemStatus cmItemStatus = getCMItemStatus(); switch (cmItemStatus) { case APPROVED: @@ -1321,7 +1313,7 @@ public class CKANPackage extends CKAN implements Moderated { throw new MethodNotSupportedException("You can't approve a rejected item. The item must be updated first. The update will set the item in pending, than it can be approved/rejected."); case PENDING: - if(!portalUser.isCatalogueModerator()) { + if(!ckanUser.isCatalogueModerator()) { throw new MethodNotSupportedException("Only catalogue moderator can approve a pending item."); } setToApproved(result); @@ -1368,8 +1360,7 @@ public class CKANPackage extends CKAN implements Moderated { break; case PENDING: - PortalUser portalUser = ckanUser.getPortalUser(); - if(!portalUser.isCatalogueModerator()) { + if(!ckanUser.isCatalogueModerator()) { throw new MethodNotSupportedException("Only catalogue moderator can reject a pending item."); } @@ -1405,7 +1396,7 @@ public class CKANPackage extends CKAN implements Moderated { readItem(); // Catalogue Moderators are allowed to post message to the dedicated Stream - if(!ckanUser.getPortalUser().isCatalogueModerator()) { + if(!ckanUser.isCatalogueModerator()) { // Users that are not if(!isItemCreator()) { throw new NotAllowedException("Only item creator and " + Moderated.CATALOGUE_MODERATOR + "s are entitled to partecipate to the moderation discussion thread."); diff --git a/src/main/java/org/gcube/gcat/persistence/ckan/CKANUser.java b/src/main/java/org/gcube/gcat/persistence/ckan/CKANUser.java index 892f07f..a5c9956 100644 --- a/src/main/java/org/gcube/gcat/persistence/ckan/CKANUser.java +++ b/src/main/java/org/gcube/gcat/persistence/ckan/CKANUser.java @@ -1,6 +1,6 @@ package org.gcube.gcat.persistence.ckan; -import java.util.List; +import java.util.Collection; import javax.ws.rs.InternalServerErrorException; import javax.ws.rs.WebApplicationException; @@ -8,8 +8,8 @@ import javax.ws.rs.core.Response.Status; import org.gcube.com.fasterxml.jackson.databind.node.ObjectNode; import org.gcube.common.authorization.utils.manager.SecretManager; +import org.gcube.gcat.api.moderation.Moderated; import org.gcube.gcat.api.roles.Role; -import org.gcube.gcat.social.PortalUser; import org.gcube.gcat.utils.RandomString; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -44,8 +44,8 @@ public class CKANUser extends CKAN { private static final String API_KEY = "apikey"; - protected PortalUser portalUser; protected Role role; + protected Boolean catalogueModerator; public CKANUser() { super(); @@ -56,6 +56,7 @@ public class CKANUser extends CKAN { PATCH = null; DELETE = USER_DELETE; PURGE = null; + catalogueModerator = null; } public String create() { @@ -80,14 +81,14 @@ public class CKANUser extends CKAN { * @return true if the display name and the full name has been updated in objectNode */ private boolean checkAndSetJobTitle(ObjectNode objectNode) { - String portalJobTitle = getPortalUser().getJobTitle(); + String jobTitle = SecretManager.instance.get().getTitle(); String ckanJobTitle = ""; if(objectNode.has(ABOUT)) { ckanJobTitle = objectNode.get(ABOUT).asText(); } - if(portalJobTitle.compareTo(ckanJobTitle) != 0) { - objectNode.put(ABOUT, portalJobTitle); + if(jobTitle.compareTo(ckanJobTitle) != 0) { + objectNode.put(ABOUT, jobTitle); return true; } return false; @@ -99,7 +100,7 @@ public class CKANUser extends CKAN { * @return true if the display name and the full name has been updated in objectNode */ private boolean checkAndSetFullName(ObjectNode objectNode) { - String portalFullname = getPortalUser().getSurnameName(); + String portalFullname = getSurnameName(); String ckanFullname = ""; if(objectNode.has(FULL_NAME)) { @@ -119,7 +120,7 @@ public class CKANUser extends CKAN { * @return true if the display name and the full name has been updated */ private boolean checkAndSetEMail(ObjectNode objectNode) { - String portalEmail = getPortalUser().getEMail(); + String portalEmail = SecretManager.instance.get().getEMail(); String ckanEmail = ""; if(objectNode.has(EMAIL)) { @@ -213,7 +214,7 @@ public class CKANUser extends CKAN { public Role getRole() { if(role == null) { role = Role.MEMBER; - List roles = getPortalUser().getRoles(); + Collection roles = SecretManager.instance.get().getRoles(); for(String portalRole : roles) { Role gotRole = Role.getRoleFromPortalRole(portalRole); if(gotRole != null && gotRole.ordinal() > role.ordinal()) { @@ -247,12 +248,26 @@ public class CKANUser extends CKAN { throw new InternalServerErrorException(e); } } - - public PortalUser getPortalUser() { - if(portalUser == null) { - portalUser = new PortalUser(); + + public boolean isCatalogueModerator() { + if(catalogueModerator == null) { + catalogueModerator = SecretManager.instance.get().getRoles().contains(Moderated.CATALOGUE_MODERATOR); } - return portalUser; + return catalogueModerator; + } + + public String getSurnameName(){ + SecretManager sm = SecretManager.instance.get(); + return String.format("%s %s", sm.getSurname(), sm.getName()).trim(); + } + + public String getNameSurname() { + SecretManager sm = SecretManager.instance.get(); + return String.format("%s %s", sm.getName(), sm.getSurname()).trim(); + } + + public String getEMail() { + return SecretManager.instance.get().getEMail(); } } \ No newline at end of file diff --git a/src/main/java/org/gcube/gcat/social/PortalUser.java b/src/main/java/org/gcube/gcat/social/PortalUser.java deleted file mode 100644 index dc50bcd..0000000 --- a/src/main/java/org/gcube/gcat/social/PortalUser.java +++ /dev/null @@ -1,138 +0,0 @@ -package org.gcube.gcat.social; - -import java.net.HttpURLConnection; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import javax.ws.rs.InternalServerErrorException; - -import org.gcube.common.gxhttp.request.GXHTTPStringRequest; -import org.gcube.gcat.api.moderation.Moderated; -import org.gcube.gcat.utils.HTTPUtility; - -import org.gcube.com.fasterxml.jackson.databind.JsonNode; -import org.gcube.com.fasterxml.jackson.databind.ObjectMapper; -import org.gcube.com.fasterxml.jackson.databind.node.ArrayNode; - -/** - * @author Luca Frosini (ISTI - CNR) - */ -public class PortalUser { - - protected static final String RESPONSE_SUCCESS_KEY = "success"; - protected static final String RESPONSE_MESSAGE_KEY = "message"; - protected static final String RESPONSE_RESULT_KEY = "result"; - - protected static final String SOCIAL_SERVICE_GET_OAUTH_USER_PROFILE_PATH = "2/users/get-oauth-profile"; - - // This key contains the fullname - //protected static final String OAUTH_USER_PROFILE_FULLNAME_KEY = "name"; - - protected static final String OAUTH_USER_PROFILE_NAME_KEY = "given_name"; - protected static final String OAUTH_USER_PROFILE_SURNAME_KEY = "family_name"; - - protected static final String OAUTH_USER_PROFILE_EMAIL_KEY = "email"; - protected static final String OAUTH_USER_PROFILE_JOB_TITLE_KEY = "job_title"; - protected static final String OAUTH_USER_PROFILE_ROLES_KEY = "roles"; - - protected final ObjectMapper objectMapper; - - // private JsonNode gCubeUserProfile; - protected JsonNode oAuthUserProfile; - - protected String name; - protected String surname; - - protected String eMail; - protected String jobTitle; - - protected List roles; - - protected Boolean catalogueModerator; - - public PortalUser() { - this.objectMapper = new ObjectMapper(); - } - - public JsonNode getOAuthUserProfile() { - if(oAuthUserProfile == null) { - try { - String socialServiceBasePath = SocialService.getSocialService().getServiceBasePath(); - - GXHTTPStringRequest gxhttpStringRequest = HTTPUtility.createGXHTTPStringRequest(socialServiceBasePath, - SOCIAL_SERVICE_GET_OAUTH_USER_PROFILE_PATH, false); - HttpURLConnection httpURLConnection = gxhttpStringRequest.get(); - - String ret = HTTPUtility.getResultAsString(httpURLConnection); - - oAuthUserProfile = objectMapper.readTree(ret); - } catch(Exception e) { - throw new InternalServerErrorException("Unable to retrive Infrastructure User Information from Social Service", e); - } - } - return oAuthUserProfile; - } - - public String getSurnameName() { - return String.format("%s %s", getSurname(), getName()); - } - - public String getNameSurname() { - return String.format("%s %s", getName(), getSurname()); - } - - public String getName() { - if(name == null) { - name = getOAuthUserProfile().get(OAUTH_USER_PROFILE_NAME_KEY).asText(); - } - return name; - } - - public String getSurname() { - if(surname == null) { - surname = getOAuthUserProfile().get(OAUTH_USER_PROFILE_SURNAME_KEY).asText(); - } - return surname; - } - - public String getEMail() { - if(eMail == null) { - eMail = getOAuthUserProfile().get(OAUTH_USER_PROFILE_EMAIL_KEY).asText(); - } - return eMail; - } - - public List getRoles() { - if(roles == null) { - JsonNode jsonNode = getOAuthUserProfile().get(OAUTH_USER_PROFILE_ROLES_KEY); - roles = new ArrayList(); - if(jsonNode.isArray()) { - ArrayNode arrayNode = (ArrayNode) jsonNode; - if(arrayNode.size() > 0) { - Iterator iterator = arrayNode.iterator(); - while(iterator.hasNext()) { - roles.add(iterator.next().asText()); - } - } - } - } - return roles; - } - - - public boolean isCatalogueModerator() { - if(catalogueModerator == null) { - catalogueModerator = getRoles().contains(Moderated.CATALOGUE_MODERATOR); - } - return catalogueModerator; - } - - public String getJobTitle() { - if(jobTitle == null) { - jobTitle = getOAuthUserProfile().get(OAUTH_USER_PROFILE_JOB_TITLE_KEY).asText(); - } - return jobTitle; - } - -} diff --git a/src/main/java/org/gcube/gcat/social/SocialPost.java b/src/main/java/org/gcube/gcat/social/SocialPost.java index de33e90..b1c5331 100644 --- a/src/main/java/org/gcube/gcat/social/SocialPost.java +++ b/src/main/java/org/gcube/gcat/social/SocialPost.java @@ -13,6 +13,7 @@ import org.gcube.com.fasterxml.jackson.databind.ObjectMapper; import org.gcube.com.fasterxml.jackson.databind.node.ArrayNode; import org.gcube.com.fasterxml.jackson.databind.node.ObjectNode; import org.gcube.common.authorization.utils.manager.SecretManager; +import org.gcube.common.authorization.utils.socialservice.SocialService; import org.gcube.common.gxhttp.request.GXHTTPStringRequest; import org.gcube.gcat.persistence.ckan.CKANInstance; import org.gcube.gcat.persistence.ckan.CKANUserCache; @@ -145,8 +146,7 @@ public class SocialPost extends Thread { public void sendSocialPost(boolean notifyUsers) { try { - PortalUser portalUser = CKANUserCache.getCurrrentCKANUser().getPortalUser(); - String fullName = portalUser.getNameSurname(); + String fullName = CKANUserCache.getCurrrentCKANUser().getNameSurname(); String basePath = SocialService.getSocialService().getServiceBasePath(); if(basePath == null) { diff --git a/src/main/java/org/gcube/gcat/social/SocialService.java b/src/main/java/org/gcube/gcat/social/SocialService.java deleted file mode 100644 index ca00c1e..0000000 --- a/src/main/java/org/gcube/gcat/social/SocialService.java +++ /dev/null @@ -1,95 +0,0 @@ -package org.gcube.gcat.social; - -import static org.gcube.resources.discovery.icclient.ICFactory.client; -import static org.gcube.resources.discovery.icclient.ICFactory.queryFor; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.gcube.common.authorization.utils.manager.SecretManager; -import org.gcube.common.resources.gcore.GCoreEndpoint; -import org.gcube.resources.discovery.client.api.DiscoveryClient; -import org.gcube.resources.discovery.client.queries.api.SimpleQuery; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Discover the Social Networking Service in the Infrastructure. - * @author Luca Frosini (ISTI - CNR) - */ -public class SocialService { - - private static final String RESOURCE = "jersey-servlet"; - private static final String SERVICE_NAME = "SocialNetworking"; - private static final String SERVICE_CLASSE = "Portal"; - - private static Logger logger = LoggerFactory.getLogger(SocialService.class); - private String serviceBasePath; - - // Map - private static Map socialServicePerContext; - - static { - socialServicePerContext = new HashMap<>(); - } - - public static SocialService getSocialService() throws Exception { - String contex = SecretManager.instance.get().getContext(); - SocialService socialService = socialServicePerContext.get(contex); - if(socialService == null) { - socialService = new SocialService(); - socialServicePerContext.put(contex, socialService); - } - return socialService; - } - - /** - * Discover the gcore endpoint for the social networking service. - * @throws Exception the exception - */ - private SocialService() throws Exception { - getServiceBasePathViaGCoreEndpoint(); - } - - protected void getServiceBasePathViaGCoreEndpoint() throws Exception { - try { - SimpleQuery query = queryFor(GCoreEndpoint.class); - query.addCondition(String.format("$resource/Profile/ServiceClass/text() eq '%s'", SERVICE_CLASSE)); - query.addCondition("$resource/Profile/DeploymentData/Status/text() eq 'ready'"); - query.addCondition(String.format("$resource/Profile/ServiceName/text() eq '%s'", SERVICE_NAME)); - query.setResult( - "$resource/Profile/AccessPoint/RunningInstanceInterfaces//Endpoint[@EntryName/string() eq \"" - + RESOURCE + "\"]/text()"); - - DiscoveryClient client = client(); - List endpoints = client.submit(query); - if(endpoints == null || endpoints.isEmpty()) { - throw new Exception("Cannot retrieve the GCoreEndpoint SERVICE_NAME: " + SERVICE_NAME - + ", SERVICE_CLASSE: " + SERVICE_CLASSE + ", in scope: " + SecretManager.instance.get().getContext()); - } - - this.serviceBasePath = endpoints.get(0); - - if(serviceBasePath == null) - throw new Exception("Endpoint:" + RESOURCE + ", is null for SERVICE_NAME: " + SERVICE_NAME - + ", SERVICE_CLASSE: " + SERVICE_CLASSE + ", in scope: " + SecretManager.instance.get().getContext()); - - serviceBasePath = serviceBasePath.endsWith("/") ? serviceBasePath : serviceBasePath + "/"; - - } catch(Exception e) { - String error = "An error occurred during GCoreEndpoint discovery, SERVICE_NAME: " + SERVICE_NAME - + ", SERVICE_CLASSE: " + SERVICE_CLASSE + ", in scope: " + SecretManager.instance.get().getContext() + "."; - logger.error(error, e); - throw new Exception(error); - } - } - - /** - * @return the base path of the service - */ - public String getServiceBasePath() { - return serviceBasePath; - } - -} diff --git a/src/main/java/org/gcube/gcat/social/SocialUsers.java b/src/main/java/org/gcube/gcat/social/SocialUsers.java index 7220f64..54b77db 100644 --- a/src/main/java/org/gcube/gcat/social/SocialUsers.java +++ b/src/main/java/org/gcube/gcat/social/SocialUsers.java @@ -9,6 +9,7 @@ import java.util.Set; import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.com.fasterxml.jackson.databind.ObjectMapper; import org.gcube.com.fasterxml.jackson.databind.node.ArrayNode; +import org.gcube.common.authorization.utils.socialservice.SocialService; import org.gcube.common.gxhttp.request.GXHTTPStringRequest; import org.gcube.gcat.utils.HTTPUtility; diff --git a/src/test/java/org/gcube/gcat/persistence/ckan/CKANGroupTest.java b/src/test/java/org/gcube/gcat/persistence/ckan/CKANGroupTest.java index 22b1ae1..80aa630 100644 --- a/src/test/java/org/gcube/gcat/persistence/ckan/CKANGroupTest.java +++ b/src/test/java/org/gcube/gcat/persistence/ckan/CKANGroupTest.java @@ -74,13 +74,13 @@ public class CKANGroupTest extends ContextTest { // @Test public void deleteAllGroups() throws Exception { - //ContextTest.setContextByName(""); + ContextTest.setContextByName("/gcube"); CKANGroup ckanGroup = new CKANGroup(); ckanGroup.setApiKey(CKANUtility.getSysAdminAPI()); List groups = listGroup(); for(String name : groups) { ckanGroup.setName(name); - ckanGroup.delete(true); + // ckanGroup.delete(true); } } diff --git a/src/test/java/org/gcube/gcat/persistence/ckan/CKANOrganizationTest.java b/src/test/java/org/gcube/gcat/persistence/ckan/CKANOrganizationTest.java index d76a8bf..bd35a58 100644 --- a/src/test/java/org/gcube/gcat/persistence/ckan/CKANOrganizationTest.java +++ b/src/test/java/org/gcube/gcat/persistence/ckan/CKANOrganizationTest.java @@ -1,6 +1,10 @@ package org.gcube.gcat.persistence.ckan; +import org.gcube.com.fasterxml.jackson.databind.JsonNode; +import org.gcube.com.fasterxml.jackson.databind.ObjectMapper; +import org.gcube.com.fasterxml.jackson.databind.node.ArrayNode; import org.gcube.gcat.ContextTest; +import org.junit.Ignore; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,4 +39,37 @@ public class CKANOrganizationTest extends ContextTest { String ret = ckanOrganization.list(1000, 0); logger.debug("{}", ret); } + + @Ignore + @Test + public void deleteOrganization() throws Exception { + ContextTest.setContextByName("/gcube"); + CKANOrganization ckanOrganization = new CKANOrganization(); + ckanOrganization.setApiKey(CKANUtility.getSysAdminAPI()); + String name = "aquamaps1"; + ckanOrganization.setName(name); + logger.debug("Going to delete {}", name); +// ckanOrganization.delete(true); + } + + @Ignore + @Test + public void deleteAllOrganizations() throws Exception { + ContextTest.setContextByName("/gcube"); + CKANOrganization ckanOrganization = new CKANOrganization(); + ckanOrganization.setApiKey(CKANUtility.getSysAdminAPI()); + String ret = ckanOrganization.list(1000, 0); + logger.debug("{}", ret); + ObjectMapper mapper = new ObjectMapper(); + JsonNode organizations = (ArrayNode) mapper.readTree(ret); + for(JsonNode jn : organizations) { + ckanOrganization.setName(jn.asText()); + logger.debug("Going to delete {}", jn.asText()); + try { +// ckanOrganization.delete(true); + }catch (Exception e) { + // A not empty organization cannot be deleted + } + } + } } diff --git a/src/test/java/org/gcube/gcat/persistence/ckan/CKANPackageTest.java b/src/test/java/org/gcube/gcat/persistence/ckan/CKANPackageTest.java index 3cb8c44..6914f0d 100644 --- a/src/test/java/org/gcube/gcat/persistence/ckan/CKANPackageTest.java +++ b/src/test/java/org/gcube/gcat/persistence/ckan/CKANPackageTest.java @@ -35,6 +35,7 @@ import org.gcube.gcat.api.moderation.Moderated; import org.gcube.informationsystem.publisher.RegistryPublisher; import org.gcube.informationsystem.publisher.RegistryPublisherFactory; import org.junit.Assert; +import org.junit.Ignore; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -626,16 +627,29 @@ public class CKANPackageTest extends ContextTest { ckanPackage.purge(); } + @Ignore @Test public void deleteAllTest() { CKANPackage ckanPackage = new CKANPackage(); MultivaluedMap mvm = new MultivaluedHashMap(); - mvm.add(GCatConstants.Q_KEY, "organization:eosc-pillar-f2ds"); + mvm.add(GCatConstants.Q_KEY, "organization:devvre"); mvm.add(GCatConstants.OWN_ONLY_QUERY_PARAMETER, "false"); UriInfo uriInfo = getUriInfo(mvm); ckanPackage.setUriInfo(uriInfo); - String res = ckanPackage.deleteAll(true); - logger.debug("{}", res); +// String res = ckanPackage.deleteAll(true); +// logger.debug("{}", res); + } + + @Ignore + @Test + public void deleteAllItemsInAllOrganizations() { + CKANPackage ckanPackage = new CKANPackage(); + MultivaluedMap mvm = new MultivaluedHashMap(); + mvm.add(GCatConstants.OWN_ONLY_QUERY_PARAMETER, "false"); + UriInfo uriInfo = getUriInfo(mvm); + ckanPackage.setUriInfo(uriInfo); +// String res = ckanPackage.deleteAll(true); +// logger.debug("{}", res); } @Test diff --git a/src/test/java/org/gcube/gcat/social/PortalUserTest.java b/src/test/java/org/gcube/gcat/social/PortalUserTest.java deleted file mode 100644 index c8b3e83..0000000 --- a/src/test/java/org/gcube/gcat/social/PortalUserTest.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.gcube.gcat.social; - -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import org.gcube.com.fasterxml.jackson.databind.JsonNode; -import org.gcube.com.fasterxml.jackson.databind.ObjectMapper; - -public class PortalUserTest { - - private static final Logger logger = LoggerFactory.getLogger(PortalUserTest.class); - - @Test - public void testGetUserProfile() throws Exception { - PortalUser portalUser = new PortalUser(); - JsonNode jsonNode = portalUser.getOAuthUserProfile(); - ObjectMapper objectMapper = new ObjectMapper(); - logger.debug("OAuth User Profile is {}", objectMapper.writeValueAsString(jsonNode)); - } -} diff --git a/src/test/java/org/gcube/gcat/social/SocialServiceTest.java b/src/test/java/org/gcube/gcat/social/SocialServiceTest.java index 71a0f7c..7e50c47 100644 --- a/src/test/java/org/gcube/gcat/social/SocialServiceTest.java +++ b/src/test/java/org/gcube/gcat/social/SocialServiceTest.java @@ -1,5 +1,6 @@ package org.gcube.gcat.social; +import org.gcube.common.authorization.utils.socialservice.SocialService; import org.gcube.gcat.ContextTest; import org.junit.Test; import org.slf4j.Logger;