POST отклонен - ​​Alfresco

Я делаю POST внутри рабочих процессов, но если у меня есть логин с правами администратора, сообщение создается.

Но если я делаю пост с другим логином другого пользователя, я получаю эту ошибку:

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

person PRVS    schedule 07.02.2016    source источник
comment
Вам не нужно заходить в систему как администратор, чтобы сделать это? (forums.alfresco .com/forum/developer-discussions/workflow/)   -  person Adam Copley    schedule 07.02.2016
comment
Я хочу создать рабочий процесс для нескольких пользователей, и каждый пользователь вносит изменения в документ (и публикует изменения). Итак, я должен войти в систему с другим пользователем. Это невозможно?   -  person PRVS    schedule 07.02.2016


Ответы (1)


Любой пользователь может обновить документ, если у него есть права на запись на узле в Alfresco.

Он работает с администратором, потому что у администратора есть права на запись на любом узле в Alfresco.

Вы не написали URL-адрес веб-скрипта, который вы вызываете, но я предполагаю, что это скрипт для загрузки. Вы должны быть уверены, что у пользователя есть права на запись на этом узле. Где хранится этот узел? Это сайт Share? Если да, был ли пользователь приглашен на сайт и с какой ролью? Роли для сайта Share:

Менеджеры имеют полные права на весь контент сайта — на то, что они создали сами и что создали другие участники сайта.

Соавторы имеют полные права на содержание сайта, которым они владеют; у них есть право редактировать, но не удалять контент, созданный другими участниками сайта.

Соавторы имеют полные права на содержание сайта, которым они владеют; они не могут редактировать или удалять контент, созданный другими участниками сайта.

Потребители имеют права только на просмотр сайта: они не могут создавать собственный контент.

Обратите внимание, что если файл был создан кем-то другим, пользователь может изменить его только с ролью «Соавтор».

ОБНОВЛЕНИЕ: если администратор создает документ, соавторы смогут изменять его. Это поведение по умолчанию, и вам не нужно ничего делать.

Если вы хотите, чтобы участники также могли изменять документ, вы можете на уровне сайта или на уровне документа предоставить «разрешения соавторов» для «участников». Используйте «Управление разрешениями» для документа или родительской папки, чтобы изменить это разрешение. Это работает на сайте.

Если документа нет на сайте, вы должны использовать группы и назначать разрешения соавторов группам, которые должны иметь возможность изменять документ.

person Marco Altieri    schedule 07.02.2016
comment
Я использую простой файл в репозитории. Вот так ! Это сработало! Большое спасибо ! Только один вопрос, если я создаю файл как администратор, есть ли способ установить его для создания с разрешениями для пользователей? (как соавторы) - person PRVS; 07.02.2016
comment
А мне нужно, чтобы пользователи загружали документы и запускали рабочие процессы, а у меня нет прав. Я (администратор) должен создавать группы с пользователями и давать разрешения, чтобы разрешать их файлы обновления и запускать рабочие процессы? - person PRVS; 07.02.2016
comment
Вы должны сказать немного больше о вашем случае использования. Неясно, какие разрешения есть у этих пользователей, и неясно, обновляете ли вы документ или загружаете новый. Должен ли рабочий процесс запускаться автоматически? Какая у тебя ошибка? Все еще 404? - person Marco Altieri; 07.02.2016
comment
Нет нет, эта проблема решена :) Я только тестирую, с другими пользователями (созданными админом и не измененными разрешениями), загружаю файлы, и я не могу, потому что у меня нет разрешений. И для запуска рабочего процесса тоже. Это другой вопрос, только если бы вы могли ответить, спасибо. :) - person PRVS; 07.02.2016
comment
Если им нужно загрузить новый документ в папку, у них должны быть права на запись в эту папку. Для этого, если папки нет на сайте, вам нужно 1) определить группу 2) добавить пользователей в эту группу 3) дать разрешение на запись в папку этой группе. - person Marco Altieri; 07.02.2016