Изменение прав доступа к элементам библиотеки документов через Liferay Webservices

Я загрузил несколько файлов в библиотеку документов с помощью Portlet_DL_DLFileEntryService (/tunnel-web/secure/axis/Portlet_DL_DLFileEntryService). Теперь я хотел бы изменить их разрешения. Если я прав, я мог бы сделать это с помощью Portal_PermissionService (/tunnel-web/secure/axis/Portal_PermissionService). Может ли кто-нибудь дать мне несколько рабочих примеров? Простые запросы soapUI были бы в порядке.

Например, у меня есть DLFileEntrySoap< /a> и хотите добавить разрешение VIEW для роли Guest и разрешения VIEW и UPDATE для роли Publisher. Какой метод Portal_PermissionService я должен вызвать и каковы значения параметров метода?


person palacsint    schedule 24.10.2011    source источник


Ответы (1)


Вы должны использовать Portal_ResourcePermissionService вместо Portal_PermissionService, у него есть следующий метод:

setIndividualResourcePermissions(long groupId, long companyId, String name, String primKey, long roleId, String[] actionIds)

куда:

  • groupId совпадает с идентификатором сообщества
  • companyId, вероятно, равен 1
  • имя равно com.liferay.portlet.documentlibrary.model.DLFileEntry или com.liferay.portlet.documentlibrary.model.DLFolder
  • primKey можно получить с помощью fileEntry.getPrimaryKey() или folder.getPrimaryKey()
  • roleId – идентификатор роли, его можно получить через Portal_RoleService
  • actionIds содержит разрешения (например, VIEW, DELETE)
person meszibalu    schedule 11.11.2011
comment
Просто интересно, как вы реализуете этот ответ? Я новичок в Liferay и не являюсь разработчиком J2EE. Я просто хочу, чтобы любой файл, загруженный любым пользователем в портлете «Документы и мультимедиа», имел разрешения роли GUEST, установленные с VIEW по умолчанию. Прямо сейчас каждый раз, когда пользователь загружает файл, ему нужно перейти на страницу разрешений и установить флажок просмотра, чтобы другие пользователи могли видеть/загружать файл, что очень раздражает пользователей. Я думал вставить новую строку в таблицу ResoursePermission и установить roleId = 10162, ownerID = 0, actionIds = 1, однако это хак, а не хорошо... - person ElasticThoughts; 11.02.2014
comment
Один из лучших ответов Liferay, которые я когда-либо видел, но не могли бы вы еще уточнить, что такое идентификатор сообщества? Во-вторых; Существует ли отдельное действие ЗАГРУЗИТЬ для файлов или какое разрешение требуется для загрузки? В-третьих; могу ли я применить это к отдельным пользователям, а также к группам, если я просто дам ему userId вместо roleId? - person Joel Peltonen; 15.07.2015