Я пытаюсь создать пользовательскую папку в меню «Создать» библиотеки документов под названием «Конфиденциальная папка» в Alfresco. Я попытался выполнить следующую процедуру,
Я использовал Alfresco Maven SDK для создания проекта, который упакует мои настройки в два AMP (пакеты модулей Alfresco). Один AMP предназначен для веб-приложения Alfresco (уровень «репо»), а другой - для веб-приложения Alfresco Share (уровень «Совместное использование»).
Я добавил в share-config-custom.xml
следующий код:
XML:
<config evaluator = "string-compare" condition = "DocumentLibrary">
<create-content>
<content id = "confidentialFolder" mimetype = "text/plain"
label = "Confidential Folder" itemid = "cm:folder" icon = "finalize">
<param name = "action">confidential-folder</param>
</content>
</create-content>
</config>
service-context.xml
я зарегистрировал bean-компонент:XML:
<bean id = "confidential-folder" class = "com.finalize.action.executer.ConfidentialFolder"
parent = "action-executer">
<property name = "nodeService">
<ref bean = "NodeService" />
</property>
</bean>
Исполнитель действия:
package com.finalize.action.executer;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.alfresco.repo.action.ParameterDefinitionImpl;
import org.alfresco.repo.action.executer.ActionExecuterAbstractBase;
import org.alfresco.service.cmr.action.Action;
import org.alfresco.service.cmr.action.ParameterDefinition;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.repo.security.permissions;
import org.alfresco.repo.policy.ClassPolicy;
//import org.alfresco.repo.events.EventsService;
public class ConfidentialFolder extends ActionExecuterAbstractBase {
public static final QName DISABLE = QName.createQName(NamespaceService.ALFRESCO_URI, "onInheritPermissionsDisabled");
// protected EventsService eventsService;
protected NodeService nodeService;
/* public void setEventsService(EventsService eventsService)
{
this.eventsService = eventsService;
}*/
public void setNodeService(NodeService nodeService)
{
this.nodeService = nodeService;
}
/*public void onInheritPermissionsDisabled(NodeRef nodeRef, boolean async)
{
inheritPermissionsDisabled(nodeRef, async);
}*/
@Override
protected void executeImpl(Action action, NodeRef actionedUponNodeRef) {
onInheritPermissionsDisabled(actionedUponNodeRef,false);
// private static final QName POLICY_ON_INHERIT_PERMISSIONS_DISABLED = QName.createQName(NamespaceService.ALFRESCO_URI, "onInheritPermissionsDisabled");
// nodeService.addAspect(actionedUponNodeRef, QName.createQName(FinalizeModel.NAMESPACE_FINALIZE_CONTENT_MODEL, FinalizeModel.ASPECT_FIN_WEBABLE), properties);
}
@Override
protected void addParameterDefinitions(List<ParameterDefinition> paramList) {
paramList.add(
new ParameterDefinitionImpl( // Create a new parameter definition to add to the list
"active", // The name used to identify the parameter
DataTypeDefinition.BOOLEAN, // The parameter value type
false, // Indicates whether the parameter is mandatory
getParamDisplayLabel("active"))); // The parameters display label
}
}
Я хотел отключить или отключить разрешение на наследование из меню конфиденциальной папки, но не могу этого добиться.
Это размещено на форумах Alfresco здесь: https://community.alfresco.com/thread/238511-off-disable-inheritance-permission-from-custom-folder и обсуждается, поэтому нет необходимости дублировать его здесь.