2015-07-13 72 views
0

使用liferay 6.2 api在文檔庫中插入圖像。該代碼還將圖像從一個文件夾移動到另一個文件夾移動文檔庫中的文件後的Liferay權限問題

但移動圖像後,其文件夾沒有得到guest view權限和圖像無法查看。

我有兩個組(站點) -

  1. A組
  2. B族

A組用戶創建的文件夾,文件插入,也移動文件。 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沒有辦法將文件從一個文件夾複製到另一個文件夾

任何人都知道如何解決這個問題?

+0

如果Daniele的回答沒有幫助(因爲您還沒有接受):您正在使用哪個版本? –

+0

上面已經提到liferay 6.2 – Coder

+0

對不起,沒有足夠確切的問題:我一直在尋找確切的版本,例如「CE GA4」? GA3中有幾個許可問題可能需要排除 - 它們導致訪客查看權限丟失。 –

回答

0

使用DLAppLocalServiceUtil和DLFileEntryServiceUtil不是正確的方法。 Thery繞過權限更新和正確的存儲庫管理。

使用DLAppServiceUtil改爲移動和更新。

+0

爲什麼它不正確? – Coder

+0

通常,DLAppServiceUtil類正確管理權限設置。這是真實的,特別是創建一個新的文件條目。 使用'''DLAppServiceUtil.moveFileEntry'''來移動文件。 –

+0

我已經使用DLAPPServiceUtil,但文件狀態沒有更新到已批准。它保持爲草案 – Coder