/* * Copyright 2015-Present Entando Inc. (http://www.entando.com) All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.agiletec.plugins.jacms.apsadmin.content.helper; import com.agiletec.aps.system.common.entity.model.EntitySearchFilter; import com.agiletec.aps.system.common.entity.model.IApsEntity; import com.agiletec.aps.system.exception.ApsSystemException; import com.agiletec.aps.system.services.user.UserDetails; import com.agiletec.apsadmin.system.entity.IEntityActionHelper; import com.agiletec.plugins.jacms.aps.system.services.content.model.Content; import com.opensymphony.xwork2.ActionSupport; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.entando.entando.aps.system.services.actionlog.model.ActivityStreamInfo; /** * Interfaccia per gli Helper della ContentAction. * @author E.Santoboni */ public interface IContentActionHelper extends IEntityActionHelper { public void updateContent(IApsEntity entity, boolean updateMainGroup, HttpServletRequest request); /** * Controlla le referenziazioni di un contenuto. Verifica la referenziazione di un contenuto con altri contenuti o pagine nel caso * di operazioni di ripubblicazione di contenuti non del gruppo ad accesso libero. * L'operazione si rende necessaria per ovviare a casi nel cui il contenuto, di un particolare gruppo, sia stato * pubblicato precedentemente in una pagina o referenziato in un'altro contenuto grazie alla associazione di questo con * altri gruppi abilitati alla visualizzazione. Il controllo evidenzia quali devono essere i gruppi al quale il contenuto * deve essere necessariamente associato (ed il perchè) per salvaguardare le precedenti relazioni. * @param content Il contenuto da analizzare. * @param action L'action da valorizzare con i messaggi di errore. * @throws ApsSystemException In caso di errore. */ public void scanReferences(Content content, ActionSupport action) throws ApsSystemException; /** * Verifica che l'utente corrente possegga * i diritti di accesso al contenuto selezionato. * @param content Il contenuto. * @param currentUser Il contenuto corrente. * @return True nel caso che l'utente corrente abbia i permessi * di lettura/scrittura sul contenuto, false in caso contrario. */ public boolean isUserAllowed(Content content, UserDetails currentUser); public Map getReferencingObjects(Content content, HttpServletRequest request) throws ApsSystemException; public EntitySearchFilter getOrderFilter(String groupBy, String lastOrder); public ActivityStreamInfo createActivityStreamInfo(Content content, int strutsAction, boolean addLink); }