Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Alfresco禁止所有用户删除内容_Java_Javascript_Alfresco - Fatal编程技术网

Java Alfresco禁止所有用户删除内容

Java Alfresco禁止所有用户删除内容,java,javascript,alfresco,Java,Javascript,Alfresco,我有下一个任务-禁止所有用户(管理员除外)删除Alfresco中的内容。我正在为此使用权限服务,但它不起作用: private void setReadOnly(ScriptNode node) { permissionService.deletePermissions(node.getNodeRef()); permissionService.setPermission(node.getNodeRef(), PermissionService.ALL_AUTHO

我有下一个任务-禁止所有用户(管理员除外)删除Alfresco中的内容。我正在为此使用权限服务,但它不起作用:

private void setReadOnly(ScriptNode node) {
        permissionService.deletePermissions(node.getNodeRef());
        permissionService.setPermission(node.getNodeRef(),
PermissionService.ALL_AUTHORITIES, PermissionService.CONSUMER, true);
}
但如果我要添加我的用户if其他组(例如-模板设计器),然后添加阻止Alfresco共享内容的新权限(例如组-“模板设计器”角色-“协调员”)—之后,我的用户必须删除内容,添加新内容(如果是文件夹)和其他。。。 另一种解决我问题的方法-

private void setReadOnly(ScriptNode node) {
        permissionService.deletePermissions(node.getNodeRef());
        permissionService.setInheritParentPermissions(node.getNodeRef(), false);
}
但由于某些原因,它并不适合。请回答-如何禁止删除所有用户的内容(管理员除外)?
谢谢。

您能否更改
permissionDefinitions.xml
并删除每个角色的删除权限

管理员有一个单独的角色,请保持原样

更新: 如果只想对一个文件夹执行此操作,则可以手动设置权限。取消选中继承权限并将组和用户设置为编辑器权限。只有协调员具有删除权限,请参见第页

如果您要删除所有者的权限,该所有者仍具有删除权限。只需创建一个删除所有者的Javascript。

确定第二个答案:

创建实现NodeServicePolicys.BeforeDeleteNodePolicy的行为

每次用户尝试删除项目之前,都会触发此行为。 然后,您将有一个NodeRef,从那里您可以检查它是哪个节点,以及是否要使其可删除

最好的方法是:

  • 添加一个自定义方面,并使用行为对其进行评估
  • 或者定义一个自定义节点类型,该节点类型具有自定义元数据布尔值或由javascript或触发javascript的规则设置的内容。并隐藏该字段,这样用户就不能选中/取消选中它

顺便说一句,Jeff Pots在创建行为时检查了这一点:)

否,因为我只需要对某些内容(只有一个文件夹)执行此操作。我需要以编程方式执行此操作。正如我在第一篇文章中所写的——如果我删除所有者或继承权限——lucene搜索在javascript中不起作用,我需要绕过chear(以管理员身份从java代码中运行javascript代码——它起作用,但不太好)。我需要另一种方法来解决这个问题。是的,我正在使用行为,但这种方法对我来说不太好。我想对此使用权限。现在,我添加了我的自定义模型特性“systemLocked”,并添加了permissionDefinitions.xml??为什么要对此使用权限?我的意思是你对自己的要求完全不清楚。看看你的问题,它是模糊的。。。写下你想要的,去罗马的方法不止一种,对吧。我解决了这个问题。我正在为此使用引导。谢谢您的回答。您需要禁止删除所有用户,还是只删除选定的用户/组?您的问题与描述中的模板\u设计器部分冲突。