task_21363 #1
|
@ -10,3 +10,4 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
||||||
- [#21363] Implemented the ckan-content-moderator-widget
|
- [#21363] Implemented the ckan-content-moderator-widget
|
||||||
- [#20650] Provided moderator skills to Catalogue Moderator(s)
|
- [#20650] Provided moderator skills to Catalogue Moderator(s)
|
||||||
- [#23108] Provided Moderation facility accessible to Catalogue Editor/Admin (only) in read only mode
|
- [#23108] Provided Moderation facility accessible to Catalogue Editor/Admin (only) in read only mode
|
||||||
|
- [#23197] Revised the query passed to gCat with the moderation states
|
||||||
|
|
|
@ -16,7 +16,7 @@ public class CkanContentModeratorCheckConfigs {
|
||||||
|
|
||||||
private int configurationLoaded = 0;
|
private int configurationLoaded = 0;
|
||||||
private static final int CONFIGURATION_EXPECTED = 3;
|
private static final int CONFIGURATION_EXPECTED = 3;
|
||||||
private int MAX_RETRY_ON_LOADING_CONFIG = 20;
|
private int MAX_RETRY_ON_LOADING_CONFIG = 50;
|
||||||
private int attemptLC = 0;
|
private int attemptLC = 0;
|
||||||
private Boolean contentModerationEnabled = null;
|
private Boolean contentModerationEnabled = null;
|
||||||
private Boolean moderatorRoleAssigned = null;
|
private Boolean moderatorRoleAssigned = null;
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package org.gcube.portlets.widgets.ckancontentmoderator.client.ui;
|
package org.gcube.portlets.widgets.ckancontentmoderator.client.ui;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.gcube.datacatalogue.utillibrary.shared.ItemStatus;
|
import org.gcube.datacatalogue.utillibrary.shared.ItemStatus;
|
||||||
|
|
|
@ -99,28 +99,24 @@ public class CkanContentModeratorServiceImpl extends RemoteServiceServlet implem
|
||||||
DataCatalogueImpl catalogueImpl = CatalogueCMSFactory.getFactory().getCatalogueImplPerScope(scope);
|
DataCatalogueImpl catalogueImpl = CatalogueCMSFactory.getFactory().getCatalogueImplPerScope(scope);
|
||||||
|
|
||||||
GCubeUser user = GcubeContextUtil.getCurrentUser(getThreadLocalRequest());
|
GCubeUser user = GcubeContextUtil.getCurrentUser(getThreadLocalRequest());
|
||||||
String valueOfQueryEmails = CkanContentModeratorUtil.userQueryForEmails(user, QUERY_OPERATOR.OR);
|
String valueOfQueryEmails = CkanContentModeratorUtil.userSOLRQueryForEmails(user, QUERY_OPERATOR.OR);
|
||||||
|
|
||||||
/// BUILDING MODERATION_STATUS QUERY
|
StringBuilder emailsValuesBuilder = new StringBuilder();
|
||||||
String system_cm_prefix = GCatCaller.MODERATOR_ITEM_STATUS_FIELD_NAME;
|
// QUERYING AUTHOR_MAIL. IT MUST BE IN LIST OF EMAILs
|
||||||
|
emailsValuesBuilder
|
||||||
StringBuilder queryValuesBuilder = new StringBuilder();
|
|
||||||
// QUERYING AUTHOR_MAIL MUST BE IN LIST OF EMAIL
|
|
||||||
queryValuesBuilder
|
|
||||||
.append(ContentModeratorWidgetConstants.CKAN_FIELD_NAME_AUTHOR_MAIL + ":" + valueOfQueryEmails);
|
.append(ContentModeratorWidgetConstants.CKAN_FIELD_NAME_AUTHOR_MAIL + ":" + valueOfQueryEmails);
|
||||||
queryValuesBuilder.append(" AND ");
|
|
||||||
// QUERYING THE ITEM MUST HAVE THE MODERATIONS STATUS
|
|
||||||
queryValuesBuilder.append("extras_" + system_cm_prefix + ":*");
|
|
||||||
|
|
||||||
Map<String, String> query = new HashMap<String, String>(1);
|
Map<String, String> params = new HashMap<String, String>(1);
|
||||||
query.put("q", queryValuesBuilder.toString());
|
params.put("q", emailsValuesBuilder.toString());
|
||||||
|
// QUERYING THE ITEM HAVING ANY MODERATIONS STATUS
|
||||||
|
params.put(GCatCaller.MODERATOR_ITEM_STATUS_PARAMETER, GCatCaller.MODERATOR_ITEM_ANY_STATUS_VALUE);
|
||||||
|
|
||||||
List<String> listItems = catalogueImpl.performQueryForItems(query);
|
List<String> listItems = catalogueImpl.performQueryForItems(params);
|
||||||
LOG.debug("query returned items: " + listItems);
|
LOG.debug("existsMyItemInModeration query returned items: " + listItems);
|
||||||
|
|
||||||
boolean haveItemInModeration = false;
|
boolean haveItemInModeration = false;
|
||||||
|
|
||||||
if (listItems != null && listItems.size()>0) {
|
if (listItems != null && listItems.size() > 0) {
|
||||||
haveItemInModeration = true;
|
haveItemInModeration = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -191,7 +187,7 @@ public class CkanContentModeratorServiceImpl extends RemoteServiceServlet implem
|
||||||
if (restrictedToLoggedInUser) {
|
if (restrictedToLoggedInUser) {
|
||||||
filters = new HashMap<String, String>(1);
|
filters = new HashMap<String, String>(1);
|
||||||
GCubeUser user = GcubeContextUtil.getCurrentUser(getThreadLocalRequest());
|
GCubeUser user = GcubeContextUtil.getCurrentUser(getThreadLocalRequest());
|
||||||
String valueOfQueryEmails = CkanContentModeratorUtil.userQueryForEmails(user, QUERY_OPERATOR.OR);
|
String valueOfQueryEmails = CkanContentModeratorUtil.userSOLRQueryForEmails(user, QUERY_OPERATOR.OR);
|
||||||
filters.put(ContentModeratorWidgetConstants.CKAN_FIELD_NAME_AUTHOR_MAIL, valueOfQueryEmails);
|
filters.put(ContentModeratorWidgetConstants.CKAN_FIELD_NAME_AUTHOR_MAIL, valueOfQueryEmails);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -392,7 +388,7 @@ public class CkanContentModeratorServiceImpl extends RemoteServiceServlet implem
|
||||||
if (restrictedToLoggedInUser) {
|
if (restrictedToLoggedInUser) {
|
||||||
filters = new HashMap<String, String>(1);
|
filters = new HashMap<String, String>(1);
|
||||||
GCubeUser user = GcubeContextUtil.getCurrentUser(getThreadLocalRequest());
|
GCubeUser user = GcubeContextUtil.getCurrentUser(getThreadLocalRequest());
|
||||||
String valueOfQueryEmails = CkanContentModeratorUtil.userQueryForEmails(user, QUERY_OPERATOR.OR);
|
String valueOfQueryEmails = CkanContentModeratorUtil.userSOLRQueryForEmails(user, QUERY_OPERATOR.OR);
|
||||||
filters.put(ContentModeratorWidgetConstants.CKAN_FIELD_NAME_AUTHOR_MAIL, valueOfQueryEmails);
|
filters.put(ContentModeratorWidgetConstants.CKAN_FIELD_NAME_AUTHOR_MAIL, valueOfQueryEmails);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ public class CkanContentModeratorUtil {
|
||||||
* Mails
|
* Mails
|
||||||
* @throws Exception the exception
|
* @throws Exception the exception
|
||||||
*/
|
*/
|
||||||
public static String userQueryForEmails(GCubeUser user, QUERY_OPERATOR operator) throws Exception {
|
public static String userSOLRQueryForEmails(GCubeUser user, QUERY_OPERATOR operator) throws Exception {
|
||||||
LOG.debug("userQueryForEmails called for user {}", user);
|
LOG.debug("userQueryForEmails called for user {}", user);
|
||||||
|
|
||||||
List<Email> listServerEmails = user.getEmailAddresses();
|
List<Email> listServerEmails = user.getEmailAddresses();
|
||||||
|
|
|
@ -101,7 +101,8 @@ public class GcubeContextUtil {
|
||||||
|
|
||||||
// DEV MODE
|
// DEV MODE
|
||||||
if (!isWithinPortal()) {
|
if (!isWithinPortal()) {
|
||||||
CMSUserRole userRole = CMSUserRole.CATALOGUE_MODERATOR;
|
//CMSUserRole userRole = CMSUserRole.CATALOGUE_MODERATOR;
|
||||||
|
CMSUserRole userRole = null;
|
||||||
LOG.warn("\n\n\nDevelopment MODE is enabled, returning CMS user role: "+userRole);
|
LOG.warn("\n\n\nDevelopment MODE is enabled, returning CMS user role: "+userRole);
|
||||||
return Arrays.asList(userRole);
|
return Arrays.asList(userRole);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue