diff --git a/CHANGELOG.md b/CHANGELOG.md index 0686c99..76e8973 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm # Changelog for gCube Catalogue (gCat) Service +## [v2.4.0-SNAPSHOT] + +- Added moderation link in moderation message [#23142] + + ## [v2.3.0] - Switched moderation messages to notification [#23317] diff --git a/pom.xml b/pom.xml index ca9d990..107a474 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.gcube.data-catalogue gcat war - 2.3.0 + 2.4.0-SNAPSHOT gCube Catalogue (gCat) Service This service allows any client to publish on the gCube Catalogue. 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 18dba66..80ac06e 100644 --- a/src/main/java/org/gcube/gcat/moderation/thread/ModerationThread.java +++ b/src/main/java/org/gcube/gcat/moderation/thread/ModerationThread.java @@ -1,9 +1,15 @@ package org.gcube.gcat.moderation.thread; +import java.util.HashMap; +import java.util.Map; + //import java.util.HashMap; //import java.util.Map; import org.gcube.com.fasterxml.jackson.databind.ObjectMapper; +import org.gcube.common.authorization.utils.manager.SecretManager; +import org.gcube.common.authorization.utils.manager.SecretManagerProvider; +import org.gcube.gcat.api.configuration.CatalogueConfiguration; //import org.gcube.common.authorization.utils.manager.SecretManager; //import org.gcube.common.authorization.utils.manager.SecretManagerProvider; //import org.gcube.gcat.api.configuration.CatalogueConfiguration; @@ -13,6 +19,9 @@ import org.gcube.gcat.persistence.ckan.CKANUser; //import org.gcube.portlets.user.uriresolvermanager.UriResolverManager; //import org.gcube.portlets.user.uriresolvermanager.resolvers.query.CatalogueResolverQueryString.MODERATION_OP; //import org.gcube.portlets.user.uriresolvermanager.resolvers.query.CatalogueResolverQueryStringBuilder; +import org.gcube.portlets.user.uriresolvermanager.UriResolverManager; +import org.gcube.portlets.user.uriresolvermanager.resolvers.query.CatalogueResolverQueryString.MODERATION_OP; +import org.gcube.portlets.user.uriresolvermanager.resolvers.query.CatalogueResolverQueryStringBuilder; /** * @author Luca Frosini (ISTI - CNR) @@ -62,34 +71,29 @@ public abstract class ModerationThread { } public String getModerationURL() { -// -// TODO Add the following change in changelog -// - Added moderation link in moderation message [#23142] -// -// if(moderationURL==null) { -// try { -// SecretManager secretManager = SecretManagerProvider.instance.get(); -// String context = secretManager.getContext(); -// UriResolverManager resolver = new UriResolverManager("CTLG"); -// Map params = new HashMap(); -// params.put("gcube_scope", context); //e.g. /gcube/devsec/devVRE -// params.put("entity_context", "organization"); -// params.put("entity_name", CatalogueConfiguration.getOrganizationName(context)); //e.g. devvre -// -// CatalogueResolverQueryStringBuilder builder = new CatalogueResolverQueryStringBuilder(itemName); //item name under moderation -// builder.itemStatus(cmItemStatus.name()). //e.g. pending, approved, rejected -// moderation(MODERATION_OP.show); -// -// String queryString = builder.buildQueryParametersToQueryString(); -// params.put(CatalogueResolverQueryStringBuilder.QUERY_STRING_PARAMETER, queryString); -// -// moderationURL = resolver.getLink(params, true); -// }catch (Exception e) { -// return itemURL; -// } -// } -// return moderationURL; - return itemURL; + if(moderationURL==null) { + try { + SecretManager secretManager = SecretManagerProvider.instance.get(); + String context = secretManager.getContext(); + UriResolverManager resolver = new UriResolverManager("CTLG"); + Map params = new HashMap(); + params.put("gcube_scope", context); //e.g. /gcube/devsec/devVRE + params.put("entity_context", "organization"); + params.put("entity_name", CatalogueConfiguration.getOrganizationName(context)); //e.g. devvre + + CatalogueResolverQueryStringBuilder builder = new CatalogueResolverQueryStringBuilder(itemName); //item name under moderation + builder.itemStatus(cmItemStatus.name()). //e.g. pending, approved, rejected + moderation(MODERATION_OP.show); + + String queryString = builder.buildQueryParametersToQueryString(); + params.put(CatalogueResolverQueryStringBuilder.QUERY_STRING_PARAMETER, queryString); + + moderationURL = resolver.getLink(params, true); + }catch (Exception e) { + return itemURL; + } + } + return moderationURL; } /**