package org.exoplatform.ecm.webui.component.explorer.control.filter;
import org.exoplatform.ecm.webui.utils.PermissionUtil;
import org.exoplatform.services.wcm.utils.WCMCoreUtils;
import org.exoplatform.webui.ext.filter.UIExtensionAbstractFilter;
import org.exoplatform.webui.ext.filter.UIExtensionFilterType;
import javax.jcr.Node;
import java.util.Map;
/**
* Check parent node modify permission for Open Document In Office feature
*/
public class CanEditDocFilter extends UIExtensionAbstractFilter {
public CanEditDocFilter() {
this("UIActionBar.msg.unsupported-action");
}
public CanEditDocFilter(String messageKey) {
super(messageKey, UIExtensionFilterType.MANDATORY);
}
/* (non-Javadoc)
* @see org.exoplatform.webui.ext.filter.UIExtensionFilter#accept(java.util.Map)
*/
@Override
public boolean accept(Map<String, Object> context) throws Exception {
if (context == null) return true;
Node currentNode = (Node) context.get(Node.class.getName());
if(!WCMCoreUtils.canAccessParentNode(currentNode)) return false;
return PermissionUtil.canAddNode(currentNode.getParent());
}
/* (non-Javadoc)
* @see org.exoplatform.webui.ext.filter.UIExtensionFilter#onDeny(java.util.Map)
*/
@Override
public void onDeny(Map<String, Object> context) throws Exception {
}
}