2016-02-07 123 views
2

我在工作流程中做了一個POST,但是如果我有一個admin用戶登錄,這個帖子就會被創建。POST拒絕 - Alfresco

但是,如果我與另一個用戶的其他登錄後,我得到這個錯誤:

{ 
    "status" : { 
    "code" : 403, 
    "name" : "Forbidden", 
    "description" : "Server understood the request but refused to fulfill it." }, 
    "message" : "01070001 org.alfresco.repo.security.permissions.AccessDeniedException: 01070015 Access Denied. You do not have the appropriate permissions to perform this operation.",  "exception" : "org.springframework.extensions.webscripts.WebScriptException - 01070001 org.alfresco .repo.security.permissions.AccessDeniedException: 01070015 Access Denied. You do not have the appropriate permissions to perform this operation.", 
    "callstack" : [ 
     ""  ,"net.sf.acegisecurity.AccessDeniedException: Access is denied." 
     (....) 
     ,"java.lang.Thread.run(Thread.java:745)" 
     ,"org.alfresco.repo.security.permissions.AccessDeniedException: 01070015 Access Denied. You do not have the appropriate permissions to perform this operation." 

     ,"org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor .java:50)" 
     ,"org.springframework.extensions.webscripts.WebScriptException: 01070001 org.alfresco.repo.security .permissions.AccessDeniedException: 01070015 Access Denied. You do not have the appropriate permissions to perform this operation." 
     ,"org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript .java:1112)" 
    ], 
    "server" : "Community v5.0.0 (d r99759-b2) schema 8,022", "time" : "Feb 7, 2016 3:03:39 PM" } 

你能幫助我嗎?

我的帖子:

var base64str = pdfbase64; 
    var binary = atob(base64str.replace(/\s/g, '')); 
    var len = binary.length; 
    var buffer = new ArrayBuffer(len); 
    var view = new Uint8Array(buffer); 
    for (var i = 0; i < len; i++) { 
     view[i] = binary.charCodeAt(i); 
    } 
    var blob = new Blob([view], { type: "application/pdf" }); 
    var fd = new FormData(); 
    if (Alfresco.util.CSRFPolicy && Alfresco.util.CSRFPolicy.isFilterEnabled()) 
    { 
     url = url + "?" + Alfresco.util.CSRFPolicy.getParameter() + "=" + encodeURIComponent(Alfresco.util.CSRFPolicy.getToken()); 
    } 
    fd.append("updatenoderef", nodeRef); 
    fd.append("filedata", blob); 
    fd.append("majorversion", "true"); 
    fd.append("overwrite", "true"); 

    var request = new XMLHttpRequest(); 
    request.open("POST", url); 
    request.send(fd); 
+0

您是否必須以管理員身份登錄才能執行此操作? (https://forums.alfresco.com/forum/developer-discussions/workflow/403-access-resource-forbidden-workflow-consolejsp-03032009-2050) –

+0

我想爲多個用戶製作一個工作流程,並且每個用戶都會文檔更改(併發布更改)。所以,我必須讓其他用戶登錄。這是不可能的? – PRVS

回答

2

任何用戶都可以更新文檔,如果他/她在露天的節點上的寫權限。

它適用於管理員,因爲管理員在Alfresco的任何節點上都有寫權限。

您沒有寫出您正在調用的web腳本的url,但我認爲它是要上傳的腳本。您需要確保用戶有權在該節點上進行寫入。 它在哪裏存儲這個節點?它是一個共享網站嗎?如果是的話,用戶是否被邀請加入該網站並扮演什麼角色? 的分享網站的角色是:

Managers have full rights to all site content - what they have created themselves and what other site members have created.

Collaborators have full rights to the site content that they own; they have rights to edit but not delete content created by other site members.

Contributors have full rights to the site content that they own; they cannot edit or delete content created by other site members.

Consumers have view-only rights in a site: they cannot create their own content.

請注意,如果該文件已被其他人創建的,用戶只能用「合作者」的角色修改。

更新: 如果管理員創建文檔,該文檔將由協作者修改。這是默認行爲,您不需要執行任何操作。

如果您希望參與者也可以修改文檔,您可以在網站級別或在文檔級別爲「參與者」提供「協作者權限」。使用文檔或父文件夾上的「管理權限」來更改此權限。 這可以在網站上運行。

如果文檔不在網站中,則必須使用組並將協作者權限分配給應該能夠更改文檔的組。

+0

我在存儲庫中使用了一個簡單的文件。 沒錯!這工作!非常感謝你 ! 只有一個問題,如果我以管理員身份創建文件,是否有任何方法將其設置爲使用用戶權限創建的? (如協作者) – PRVS

+0

我需要用戶上傳文檔並啓動工作流程,但我沒有權限。我(管理員)必須與用戶創建組並授予權限以允許其更新文件和啓動工作流程? – PRVS

+0

你必須多說一點你的用例。目前尚不清楚這些用戶擁有什麼權限,並且您不清楚您是在更新文檔還是正在上傳新文檔。工作流是否應該自動啓動?你有什麼錯誤?還是404? –