#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 .