#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, которые я видел, но не могли бы вы еще уточнить, что такое «идентификатор сообщества»? Во-вторых; Существует ли отдельное действие «ЗАГРУЗИТЬ» для файлов или какое разрешение на действие требуется для загрузки? В-третьих; могу ли я применить это как к отдельным пользователям, так и к группам, если я просто укажу идентификатор пользователя вместо идентификатора роли?