0

liferay 6.2 API を使用してドキュメント ライブラリに画像を挿入します。このコードは、画像をあるフォルダーから別のフォルダーに移動することもできます

しかし、画像を移動した後、そのフォルダーはguest view許可を得られず、画像を表示できません。

2 つのグループ (サイト) があります -

  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