Как узнать, какие разрешения есть у администратора и владельца сайта?

Как мне узнать, какие разрешения есть у следующих ролей Liferay:

  1. Администратор сайта
  2. владелец сайта

Я не вижу никаких записей, сделанных в таблице ResourcePermissions для системных ролей, таких как две вышеупомянутые и роль Administrator, поэтому я думаю, что это делает классы Permission...Service бесполезными в моем случае.


Вариант использования

Что нам нужно сделать, так это дать роль Site Administrator, но удалить некоторые разрешения, например, конкретный Site Administrator не должен иметь возможность обновлять настройки сайта или не должен иметь доступа к определенным экранам на панели управления и т. д.

Мы думаем о создании отдельной роли (Custom Site Admin), так как мы не можем определить разрешения для ролей, созданных Liferay, а затем мы назначим все разрешения Site Administrator этой роли и удалим некоторые разрешения, как указано в сценарии использования.


Изменить.
Другой вопрос: если я создам новую роль, назначу все разрешения и просто удалю некоторые из них, повлияет ли это на производительность?


Версия: Liferay 6.1 GA2

Если вы знаете какой-то другой способ решения этой проблемы, я был бы очень признателен.

Спасибо


person Prakash K    schedule 30.10.2012    source источник


Ответы (1)


Разница

Администраторы имеют все привилегии для домена, который они описывают, за одним заметным исключением.

  • Они не могут назначать или удалять других администраторов.

Например, «Администратор сайта» получает все права на этот сайт, за исключением, опять же, назначения других администраторов сайта.

Для вашего варианта использования я бы создал еще одну роль.

Еще один вопрос: если я создам новую роль, назначу все разрешения и просто удалю некоторые из них, повлияет ли это на производительность?

Нет. Учтите, что есть еще 2 роли «гость» и «участник», которые используются гораздо чаще и требуют поиска так же, как и ваша новая настраиваемая роль.

Можете ли вы сказать мне, в чем именно заключаются те разрешения, которые различаются между владельцем сайта и администратором сайта?

Все признаки указывают на то, что он жестко запрограммирован, так как в PermissionChecker есть методы с такими методами, как isSiteAdmin, isSiteOwner, isOmniAdmin и т. д., эти методы проверяют, есть ли у пользователя эти роли, и позволяют ему выполнять это конкретное действие.

Обычно следующие действия позволяют назначить роль пользователю:

  • Групповое разрешение с действием «Назначить роли пользователей»
  • Разрешение роли с действием «Назначить участников»

Однако, даже если вы предоставите эти действия любой другой роли, вы все равно не сможете сделать людей «Администраторами сайта» или «Владельцами сайта», не будучи «Владельцем сайта».

person rp.    schedule 31.10.2012
comment
Да, мы также думаем о создании еще одной роли, как указано в вопросе. Но можете ли вы сказать мне, в чем именно заключаются те разрешения, которые различаются между site owner и site admin? Хотя бы где искать те разрешения в какой категории? - person Prakash K; 01.11.2012
comment
Я добавил еще один вопрос к ОП. Спасибо рп - person Prakash K; 01.11.2012
comment
Что касается точного действия разрешения? Я не верю, что элемент существует как назначаемое действие и жестко запрограммирован. Я должен буду проверить завтра, когда я буду за своим столом. - person rp.; 01.11.2012
comment
Это круто. Спасибо. Буду ждать, пока вы окажетесь за своим столом :-) - person Prakash K; 01.11.2012
comment
Спасибо. Отмечаю это как ответ на данный момент, так как он отвечает на большинство моих вопросов. - person Prakash K; 24.12.2012
comment
Привет, Пракаш, извини, я забыл вернуться к тебе! Это действительно жестко закодировано. Если вы посмотрите на различные классы разрешений, они вызывают некоторые варианты isAdmin или isOwner, которые определяют, есть ли у пользователя эти системные роли. - person rp.; 26.12.2012