Использование addToFolder и removeFromFolder в документе Alfresco с CMIS

Я пытаюсь использовать методы документа addToFolder и removeFromFolder в Alfresco с помощью реализации Chemistry CMIS с помощью java.

Я хочу, чтобы документ был доступен из нескольких пользовательских пространств, но я не хочу копировать каждое из них в каждое пространство. Документ создается пользователем, и этот пользователь должен решить, должен ли документ быть удален, перемещен, изменен и т. д. Но другие пользователи с доступом для чтения к этому пространству должны читать эти документы из его пространств по умолчанию.

Итак, от других пользователей я запускаю myDocument.addToFolder(myNewUserSpace), и это работает нормально, и я могу получить к нему доступ без проблем. Это хорошо. Но если по какой-то причине я хочу отключить этот myNewUserSpace в myDocument (используя проприетарного пользователя de myNewUserSpace, а не пользователя myDocument), я получаю сообщение об ошибке из-за разрешений на запись в myDocument.

Я не хочу, чтобы каждый пользователь, который может выполнять addToFolder, также получал права на запись.

Можно ли сделать это без разрешения на запись в основном пользовательском пространстве?

Привет.


person lodopidolo    schedule 08.07.2013    source источник
comment
Вы можете создать публичное пространство (доступное для чтения всем или одной или нескольким группам, ...)   -  person guy777    schedule 08.07.2013
comment
Нет, я не могу. К первичной папке могут обращаться (читать) только некоторые маленькие пользователи, и никто не может туда писать, кроме ее владельца.   -  person lodopidolo    schedule 08.07.2013


Ответы (1)


разрешения могут быть унаследованы от папки. Afaik addToFolder добавляет ваш пробел B в качестве вторичного родительского элемента моего документа, но разрешения наследуются только от пробела А — основного родительского элемента моего документа.

person alfrescian    schedule 08.07.2013
comment
Да, но если с пользователем B я могу myDocument.addParent(spaceB), разве я не могу выполнить myDocument.removeFromFolder(spaceB) и с этим пользователем? Теперь я не могу этого сделать, хотя я даю разрешение на запись пользователю B на primaryParent. Нет другого способа сделать это? - person lodopidolo; 08.07.2013
comment
вам нужно разрешение на запись для пробела B и myDocument для выполнения myDocument.addParent(spaceB), но, на самом деле, вам нужно разрешение на удаление для пробела B для выполнения myDocument.removeFromFolder(spaceB) Существует множество возможностей для реализации ваших тузов использования с помощью пользовательского кода в Alfresco (поведения или динамические разрешения) — вы все еще можете использовать CMIS для доступа к Alfresco, но вам придется настроить внутренние компоненты Alfresco для вашего варианта использования. - person alfrescian; 09.07.2013
comment
Ну конечно; естественно. пользователю B, и у пользователя B есть разрешение на удаление пробела B. Но для запуска от userB myDocument.removeFromFolder(spaceB) Alfresco также требуется разрешение на удаление/запись для primaryParent. Вот этого я не могу понять. И, ссылаясь на ваше предложение, не могли бы вы дать мне документацию или пример того, как это сделать напрямую из Alfresco API? - person lodopidolo; 10.07.2013