null

Liferay: настройка прав доступа на редактирование пользователей для ваших ролей

В прошлый раз мы говорили о том, как задать список собственных разрешений в Liferay 7.4.3 и как на их основе регулировать доступ к различной функциональности портлетов в зависимости от роли. Теперь же мы кратко упомянем неочевидный момент работы с системными сущностями самого лайфрея. Рассмотрим такой случай, когда даже выставление всех прав в портлете для нужной роли может не спасти от вывода ошибки об отсутствии разрешения на модификацию того или иного ресурса. 

В нашей практике был случай, связанный с обновлением аватара пользователя. Сотрудник с нужной ролью не смог обновить аватарку, обладая при этом всеми необходимыми разрешениями, доступными для используемого портлета. Зацепкой стало следующее сообщение об ошибке:

User 104549 must have UPDATE permission for com.liferay.portal.kernel.model.User 104777

После изучения различных источников и проведения некоторых экспериментов было определено, что в случае модификации  com.liferay.portal.kernel.model.User (и других сущностей ядра лайфрея) прав на обновление в рамках конкретного портлета недостаточно. Если попытаться изменить данные системного пользователя (или добавить ему аватар, как в нашем случае), то необходимо, чтобы у сотрудника были права не на портлеты, а на сам ресурс "Пользователь" (User). Покажем, как добавить их для всех пользователей выбранной роли.

В "Панели управления" (будучи админом) переходим по пути Control Panel -> Roles. Выбираем нужную роль (не системную) и нажимаем на Edit

В открывшемся окне переходим во вкладку "Define Permissions", выбираем там пользователей и организации. Видим меню с разрешениями на ресурсы:

Для пользователя выберем разрешения Update и View (при необходимости можно и больше):

 

Не забываем все это сохранять - и все, для пользователей с ролью Demo-Custom-Role проблема решена и они спокойно могут обновлять фото других пользователей. Таким образом, проблема ушла. Аналогичным образом происходит работа и с организациями, и с другими системными сущностями.

 

Вперед

Коротко о себе:

 

Работаю Java\Kotlin Backend Developer в компании Tune-it. На работе занимаюсь проектами, связанными с Liferay, NiFi, Spring Framework, а вне работы - философской антропологией