0

使用 liferay 6.2 api 在文档库中插入图像。该代码还将图像从一个文件夹移动到另一个文件夹

但是移动图像后,他们的文件夹没有获得guest view权限,并且无法查看图像。

我有两个组(站点)-

  1. A组
  2. B组

GroupA 用户创建文件夹、插入文件并移动文件。GroupB 用户应该能够看到这些文件。

所有文件夹和文件都Global scope在文档库中创建。

public void moveFilesToFolder(final HttpServletRequest request, final List<DLFileEntry> filesToMove, final DLFolder toFolder)
        throws Exception {
    final ServiceContext sc = ServiceContextFactory.getInstance(request);
    sc.setWorkflowAction(WorkflowConstants.STATUS_APPROVED);
    sc.setAddGuestPermissions(true);
    sc.setAddGroupPermissions(true);

    for (final DLFileEntry file : filesToMove) {            
        DLAppServiceUtil.moveFileEntry(file.getFileEntryId(), toFolder.getFolderId(), sc)
    }
    // update folders to have guest permissions
    DLAppLocalServiceUtil.updateFolder(toFolder.getFolderId(), toFolder.getParentFolderId(), toFolder.getName(),
            toFolder.getDescription(), sc);
}

这似乎不起作用,并且没有为所有用户设置来宾权限。奇怪的行为是,当执行移动操作的用户从 UI 中查看权限时,会检查查看权限,但对于任何其他用户,权限都不会检查。

根据下面的建议,我曾经DLAppServiceUtil移动文件。但它不会将文件状态从草稿更改为已批准。

还有什么是用来复制文件的正确方法?没有办法 DLAppServiceUtil将文件从一个文件夹复制到另一个文件夹

有人知道如何解决这个问题吗?

4

1 回答 1

0

使用 DLAppLocalServiceUtil 和 DLFileEntryServiceUtil 不是正确的方法。他们绕过权限更新和正确的存储库管理。

请改用DLAppServiceUtil来移动和更新。

于 2015-07-13T08:18:39.137 回答