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 e00a6da..f12616a 100644 --- a/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java +++ b/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java @@ -1163,21 +1163,20 @@ public class CKANPackage extends CKAN implements Moderated { return cmItemStatus; } + protected void setItemAuthorToModerationThread() { + String itemAuthorCkanUsername = ""; + JsonNode jsonNode = getExtraField(result, Moderated.SYSTEM_CM_ITEM_AUTHOR); + if(jsonNode!=null) { + itemAuthorCkanUsername = jsonNode.asText(); + moderationThread.setItemAuthorCkanUsername(itemAuthorCkanUsername); + } + } + protected boolean isModerationEnabled() { boolean moderationEnabled = configuration.isModerationEnabled(); if(moderationEnabled && moderationThread==null) { moderationThread = ModerationThread.getDefaultInstance(); moderationThread.setCKANUser(ckanUser); - - if(result!=null) { - String itemAuthorCkanUsername = ""; - JsonNode jsonNode = getExtraField(result, Moderated.SYSTEM_CM_ITEM_AUTHOR); - if(jsonNode!=null) { - itemAuthorCkanUsername = jsonNode.asText(); - moderationThread.setItemAuthorCkanUsername(itemAuthorCkanUsername); - } - } - } return moderationEnabled; } @@ -1487,6 +1486,7 @@ public class CKANPackage extends CKAN implements Moderated { result = mapper.readTree(ret); parseResult(); + setItemAuthorToModerationThread(); moderationThread.setItemCoordinates(itemID, name, itemTitle, itemURL); moderationThread.postItemApproved(moderatorMessage); @@ -1539,6 +1539,7 @@ public class CKANPackage extends CKAN implements Moderated { result = mapper.readTree(ret); parseResult(); + setItemAuthorToModerationThread(); moderationThread.setItemCoordinates(itemID, name, itemTitle, itemURL); moderationThread.postItemRejected(moderatorMessage); break; @@ -1566,6 +1567,8 @@ public class CKANPackage extends CKAN implements Moderated { readItem(); + isModerationEnabled(); + // Catalogue Moderators are allowed to post message to the dedicated Stream if(!ckanUser.isCatalogueModerator()) { // Users that are not @@ -1577,6 +1580,7 @@ public class CKANPackage extends CKAN implements Moderated { } CMItemStatus cmItemStatus = getCMItemStatus(); + setItemAuthorToModerationThread(); moderationThread.setItemCoordinates(itemID, name, itemTitle, itemURL); moderationThread.postUserMessage(cmItemStatus, message); return;