From 88bea376f38126c79c87efe484409357e62c71bf Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Thu, 21 Apr 2022 13:18:15 +0200 Subject: [PATCH] Using sysadmin to list item in moderation. Filtering own item --- .../gcat/persistence/ckan/CKANPackage.java | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) 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 b658039..48cbbe7 100644 --- a/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java +++ b/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java @@ -1065,44 +1065,44 @@ public class CKANPackage extends CKAN implements Moderated { CMItemStatus cmItemStatus = getRequestedCMItemStatus(); + this.apiKey = CKANUtility.getSysAdminAPI(); + if(!ckanUser.isCatalogueModerator()) { - + q = String.format("%s AND %s:%s", q, AUTHOR_EMAIL_KEY, ckanUser.getEMail()); + parameters.put(GCatConstants.Q_KEY, q); + switch (ckanUser.getRole()) { case ADMIN: case MANAGER: - break; - case EDITOR: - q = String.format("%s AND %s:%s", q, AUTHOR_EMAIL_KEY, ckanUser.getEMail()); - parameters.put(GCatConstants.Q_KEY, q); break; case MEMBER: if(cmItemStatus!=null && cmItemStatus!=CMItemStatus.APPROVED) { throw new ForbiddenException("You are only authorized to list " + CMItemStatus.APPROVED.getValue() + " items"); } - cmItemStatus = CMItemStatus.APPROVED; break; default: break; } - - } - if(cmItemStatus!=null) { - stringBuffer.append(cmItemStatus.getValue()); - if(cmItemStatus == CMItemStatus.APPROVED) { - stringBuffer.append(" OR (*:* -"); - stringBuffer.append(CM_STATUS_QUERY_FILTER_KEY); - stringBuffer.append(":[* TO *])"); - } - stringBuffer.append(")"); - q = String.format("%s AND %s", q, stringBuffer.toString()); - parameters.put(GCatConstants.Q_KEY, q); + if(cmItemStatus==null) { + cmItemStatus = CMItemStatus.APPROVED; } + stringBuffer.append(cmItemStatus.getValue()); + if(cmItemStatus == CMItemStatus.APPROVED) { + stringBuffer.append(" OR (*:* -"); + stringBuffer.append(CM_STATUS_QUERY_FILTER_KEY); + stringBuffer.append(":[* TO *])"); + } + stringBuffer.append(")"); + q = String.format("%s AND %s", q, stringBuffer.toString()); + parameters.put(GCatConstants.Q_KEY, q); + + parameters.put(INCLUDE_PRIVATE_KEY, String.valueOf(true)); }else{ if(ckanUser.getRole().ordinal()>=Role.ADMIN.ordinal()) {