【问题标题】:Liferay permissions issue after moving files in doc lib在 doc lib 中移动文件后的 Liferay 权限问题
【发布时间】:2015-07-13 06:05:35
【问题描述】:

使用 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 中查看权限时,会检查 gues 查看权限,但对于任何其他用户,权限都不会检查。

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

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

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

【问题讨论】:

  • 如果 Daniele 的回答没有帮助(因为您还没有接受它):您使用的是哪个版本?
  • 上面已经提到liferay 6.2
  • 抱歉,问题不够准确:我正在寻找确切的版本,例如“CE GA4”? GA3 中存在一些您可能想要排除的权限问题 - 它们导致访客查看权限丢失。

标签: java liferay liferay-6.2


【解决方案1】:

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

使用 DLAppServiceUtil 代替移动和更新。

【讨论】:

  • 对于一般规则,DLAppServiceUtil 类正确管理权限设置。这是真的,特别是创建一个新的文件条目。使用DLAppServiceUtil.moveFileEntry 移动文件。
  • 我使用了 DLAPPServiceUtil,但文件状态没有更新为 Approved。它保持为草稿
猜你喜欢
  • 2015-02-14
  • 2011-01-03
  • 2021-05-04
  • 2017-08-08
  • 1970-01-01
  • 2014-10-13
  • 1970-01-01
相关资源
最近更新 更多