Права пользователя пространства на свежем воздухе

#permissions #alfresco

#разрешения #на свежем воздухе

Вопрос:

У меня есть папка alfresco ( PARENT_FOLDER ) с более чем 300 вложенными папками, и я хочу предоставить роль потребителя определенной группе ( GROUP1 ) и определенной вложенной папке ( PARENT_FOLDER/FOLDER1 ), а роль потребителя — другой группе ( GROUP2 ) и всей вложенной папке.

У всех вложенных папок активировано «Наследовать права родительского пространства», а у родительской папки есть права пользователя этого пространства:

  • OWNER_USER : Coordinator
  • GROUP2 : Consumer

PARENT_FOLDER/FOLDER1 Имеет:

  • GROUP1 : Consumer

С такой конфигурацией:

  • GROUP2 может получить доступ к PARENT_FOLDER и ко всем вложенным папкам.
  • GROUP1 только для объектов, содержащихся в PARENT_FOLDER/FOLDER1 (по идентификатору), но не может получить доступ к объектам с их пути, а клиент CMIS не может создать getParent() и т.д. Чтобы сделать это возможным, PARENT_FOLDER необходимо иметь GROUP1 : Consumer grant, и в этом случае GROUP1 можно было бы получить доступ ко всем вложенным папкам.

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

  • PARENT_FOLDER :
    • OWNER_USER : Coordinator
    • GROUP1 : Consumer
    • GROUP2 : Consumer
  • PARENT_FOLDER/FOLDER1 :
    • OWNER_USER : Coordinator
    • GROUP1 : Consumer
    • GROUP2 : Consumer
  • Другие вложенные папки, отличные от PARENT_FOLDER/FOLDER1 :
    • OWNER_USER : Coordinator
    • GROUP2 : Consumer

но сделать это очень сложно, потому что я не могу выбрать много вложенных папок и изменить их пользовательские разрешения. Я хотел сделать это из модели базы данных (postgres), но у меня недостаточно знаний о модели для этого. Я хотел внести изменения в это разрешение из CMIS, но ничего не нашел.

Вопрос 1: Как я могу изменить разрешения пользователя пространства для многих объектов на открытом воздухе одновременно?

Вопрос 2: Знаете ли вы другой способ сделать то, что мне нужно?

Спасибо.

Ответ №1:

Найдите себе консоль Javascript изhttps://github.com/share-extras/js-console и установите разрешения с помощью некоторых базовых сценариев. Предполагая, что вы выбрали родителя как space , это должно выглядеть примерно так:

 space.children.forEach(function(n) {
    // use n.setPermission/removePermission/setInheritPermission
    n.save();// Not quite sure whether save is needed here
});
  

API ScriptNode находится по адресуhttp://wiki.alfresco.com/wiki/4.0_JavaScript_API#Permission_and_Security_API .