仅在露天Doclib中的特定文件夹中显示创建和上传按钮

时间:2016-05-04 09:23:34

标签: alfresco-share

我正在通过在alfresco doclib中创建项目操作创建一个项目,我在下面附带的屏幕截图中显示了该项目。我必须只在文档库文件夹中创建该项目。因为我在文档库上设置了一条规则,通过java脚本代码创建一些动态的默认项目结构。工作正常。

但是现在我面临一个很大的挑战,那就是我正在创建项目和上传选项的每个子文件夹中。但我不想让用户在每个子文件夹中创建项目。我只是想表明只在文档库中创建和上传doclib操作。和我通过java脚本代码创建的内部目录。所以有人可以帮助我,我该怎么做。

提前致谢。

请参阅下面附带的截图,详细了解我的要求。enter image description here

1 个答案:

答案 0 :(得分:3)

在custom-share-config-custom.xml中,您可以使用评估程序检查 DocLibActions 的条件。

这是仅针对 x:myType 类型的节点显示的操作的示例:

share-amp-slingshot-application-context.xml

<bean id="evaluator.doclib.action.myCondition" class="org.alfresco.web.evaluator.NodeTypeEvaluator" >
   <property name="types">
        <list>
            <value>x:myType</value>
        </list>
    </property>
</bean>

share-config-custom.xml

<action id="example-action" type="javascript" label="....">
    <evaluator>evaluator.doclib.action.myCondition</evaluator>
 </action>
<evaluator>evaluator.doclib.action.myCondition</evaluator

但是对于像create-content这样的顶级菜单,无效。 您可以做的是为您的需求创建一个特定的角色,例如this

<permissionGroup name="SomeUserPermissions" allowFullControl="false" expose="true">
      <includePermissionGroup permissionGroup="Collaborator" type="cm:cmobject" />
</permissionGroup>

然后将此特定权限应用于此文件夹上的用户,然后像这样修改您的代码

<config evaluator="string-compare" condition="DocumentLibrary" > 
     <create-content> 
         <content id="newFolderId" mimetype="text/plain" icon="folder" label="Create Project" itemid="bd:project">
                      <param name="page">create-content?destination={nodeRef}&amp;itemId=cm:content&amp;mimeType=text/plain</param>
        <permissions>
           <permission allow="true">SomeUserPermissions</permission>
        </permissions>
         <content> 
     </create-content> 
</config>

最后,我建议您在分享战中查看名为 share-documentlibrary-config.xml 的文档,这将有助于您了解它的工作原理。

例如,有关于标签的文档:

  

创建内容菜单项,可以是与通常的doclib操作配置相匹配的3种类型:

     
      
  • “link” - 接受一个“href”参数,该参数将传递一个nodeRef标记进行替换,用于外部链接
  •   
  • “pagelink” - 接受一个“页面”参数,该参数将传递一个nodeRef令牌进行替换,用于共享链接
  •   
  • “javascript” - 接受&amp;一个动作的“function”参数,它将当前文件夹项作为第一个参数。

     I.e.
     <content id="plain-text" label="create-content.text" icon="text" type="pagelink">
        <param name="page">create-content?destination={nodeRef}&amp;itemId=cm:content&amp;mimeType=text/plain</param>
        <permissions>
           <permission allow="true">SomeUserPermissions</permission>
        </permissions>
     </content>
    
  •   
     

请注意,始终需要“CreateChildren”权限,如果没有授予文件夹,则会禁用整个菜单。

     

另请注意,旧的/无类型简单配置仍然是允许的,下面的配置片段将自动转换为“pagelink”,如上例所示。

     <content id="plain-text" label="create-content.text" icon="text" itemid="cm:content" mimetype="text/plain" 
     permission="SomeUserPermissions"/>