package com.extendedencryption.action.evaluator; /* * Project: Alfresco Encryption Extension Module , part of the Creative Summer * License : GNU General Public License, version 2 (http://www.gnu.org/licenses/gpl-2.0.html) */ import javax.faces.context.FacesContext; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.namespace.QName; import org.alfresco.web.action.ActionEvaluator; import org.alfresco.web.bean.repository.Node; import org.alfresco.web.bean.repository.Repository; import com.extendedencryption.model.Model; public class EncryptionDisableEvaluator implements ActionEvaluator { private static final long serialVersionUID = 0L; /** * @see org.alfresco.web.action.ActionEvaluator#evaluate(org.alfresco.web.bean.repository.Node) */ public boolean evaluate(Node node) { // if the aspect hasn't been added, it cannot be disabled if (!node.hasAspect(QName.createQName(Model.NAMESPACE_SOMECO_CONTENT_MODEL, Model.ASPECT_SC_ENCRYPT))) { return false; } // otherwise check the active property FacesContext context = FacesContext.getCurrentInstance(); // check the active property NodeRef ref = new NodeRef(Repository.getStoreRef(), node.getId()); NodeService nodeSvc = Repository.getServiceRegistry(context).getNodeService(); boolean active = (Boolean)nodeSvc.getProperty(ref, QName.createQName(Model.NAMESPACE_SOMECO_CONTENT_MODEL, Model.PROP_IS_ACTIVE)); return active; } public boolean evaluate(Object obj) { if (obj instanceof Node) { return evaluate((Node)obj); } else { // if you don't give me a Node, I don't know how to evaluate return false; } } }