【问题标题】:POST refused - AlfrescoPOST 被拒绝 - 露天
【发布时间】:2016-02-07 15:09:50
【问题描述】:

我正在工作流中发布帖子,但如果我使用管理员登录,则发布帖子。

但如果我使用另一个用户的另一个登录名发布帖子,我会收到此错误:

{
    "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);

【问题讨论】:

  • 您是否必须以管理员身份登录才能执行此操作? (forums.alfresco.com/forum/developer-discussions/workflow/…)
  • 我想为多个用户制作一个工作流,每个用户都在文档中进行更改(并发布更改)。所以,我必须用另一个用户登录。这不可能吗?

标签: post workflow alfresco alfresco-share alfresco-webscripts


【解决方案1】:

如果他/她对 Alfresco 中的节点具有写入权限,则任何用户都可以更新文档。

它适用于管理员,因为管理员对 Alfresco 中的任何节点都具有写入权限。

你没有写你正在调用的 webscript 的 url,但我认为它是要上传的脚本。您需要确保用户具有在该节点上写入的权限。 这个节点存储在哪里?是共享网站吗?如果是,该用户是否被邀请到该站点并担任什么角色? 共享站点的角色是:

经理对所有网站内容(他们创建的内容)拥有完全的权利 他们自己以及其他网站成员创建的内容。

合作者对其拥有的网站内容拥有全部权利;他们 有权编辑但不能删除其他站点创建的内容 成员。

贡献者对其拥有的网站内容拥有完全的权利;他们 无法编辑或删除其他站点成员创建的内容。

消费者在网站中拥有仅查看权限:他们无法创建自己的 自己的内容。

请注意,如果文件是由其他人创建的,则用户只能使用“协作者”角色对其进行修改。

更新: 如果管理员创建文档,则协作者可以修改该文档。这是默认行为,您无需执行任何操作。

如果您希望贡献者也可以修改文档,您可以在站点级别或文档级别将“协作者权限”授予“贡献者”。在文档或父文件夹上使用“管理权限”来更改此权限。 这适用于网站。

如果文档不在站点中,您必须使用组并将协作者权限分配给应该能够更改文档的组。

【讨论】:

  • 我在存储库中使用了一个简单的文件。这是正确的 !那行得通!非常感谢你 !只有一个问题,如果我以管理员身份创建文件,有没有办法将其设置为使用用户权限创建? (如合作者)
  • 我需要用户上传文档并启动工作流程,而我没有权限。我(管理员)必须与用户一起创建组并授予允许他们更新文件和启动工作流的权限?
  • 您必须对您的用例多说一些。目前尚不清楚这些用户拥有什么权限,也不清楚您是在更新文档还是在上传新文档。工作流程是否应该自动启动?你有什么错误?还是 404 ?
  • 不不,这个问题解决了 :) 我只是在测试,与另一个用户(由管理员创建且未更改权限)上传文件,但我不能,因为我不有权限。对于启动工作流程也是如此。如果你能回答,这是另一个问题,谢谢。 :)
  • 如果他们需要在文件夹中上传新文档,他们需要对该文件夹具有写入权限。为此,如果该文件夹不在站点中,您需要 1) 定义一个组 2) 将用户添加到该组 3) 将该文件夹的写入权限授予该组。
猜你喜欢
  • 2018-08-20
  • 2021-08-03
  • 2021-09-08
  • 2017-01-14
  • 2015-03-13
  • 1970-01-01
  • 1970-01-01
  • 2020-08-19
  • 1970-01-01
相关资源
最近更新 更多