Изменение разрешений элементов библиотеки документов через веб-сервисы Liferay

#web-services #liferay #liferay-6

#веб-сервисы #liferay #liferay-6

Вопрос:

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

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

Ответ №1:

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


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

где:

  • Идентификатор группы равен идентификатору сообщества
  • Идентификатор компании, вероятно, равен 1
  • имя com.liferay.portlet.documentlibrary.model.DLFileEntry или com.liferay.portlet.documentlibrary.model.DLFolder
  • primKey можно получить с fileEntry.getPrimaryKey() помощью или folder.getPrimaryKey()
  • RoleId — это идентификатор роли, вы можете получить его через Portal_RoleService
  • actionIds содержит разрешения (например VIEW , DELETE )

Комментарии:

1. Просто интересно, как вы собираетесь реализовать этот ответ? Я новичок в Liferay, а не разработчик J2EE. Я просто хочу, чтобы любой файл, загруженный любым пользователем в портлете «Документы и МУЛЬТИМЕДИА», имел разрешения ГОСТЕВОЙ роли, установленные с помощью VIEW по умолчанию. Прямо сейчас каждый раз, когда пользователь загружает файл, ему нужно перейти на страницу разрешений и установить флажок просмотр, чтобы другие пользователи могли видеть / загружать файл — очень раздражает пользователей. Я думал о том, чтобы вставить новую строку в таблицу ResourcePermission и установить RoleId= 10162, OwnerId= 0, actionIds = 1 однако это хак, нехорошо…

2. Один из лучших ответов liferay, которые я видел, но не могли бы вы еще уточнить, что такое «идентификатор сообщества»? Во-вторых; Существует ли отдельное действие «ЗАГРУЗИТЬ» для файлов или какое разрешение на действие требуется для загрузки? В-третьих; могу ли я применить это как к отдельным пользователям, так и к группам, если я просто укажу идентификатор пользователя вместо идентификатора роли?