Пользовательское разрешение для пользовательского портлета для определенного пользователя в liferay

Как я могу определить настраиваемое разрешение для настраиваемого портлета для определенного пользователя в liferay? Я использовал среду liferay 6.1.2 ga3 с jboss. В моем настраиваемом портлете кнопка развертывания/отмены развертывания, но как я могу дать конкретное разрешение тому, что только администратор может получить доступ к этой функции любой другой не могу использовать это

проверьте эту ссылку https://i.imgur.com/Qwfbg2H.png

Не могли бы вы уточнить.

Я также проверяю эту ссылку для справки

и на странице jsp для рендеринга всех данных datagrid через jeasyui и rest API

Удаление настраиваемых разрешений/действий из портлета http://liferayzone.wordpress.com/2013/09/01/liferay-permission-on-custom-portlet/


person user3595542    schedule 19.07.2014    source источник


Ответы (2)


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

На всякий случай, если вам придет в голову эта идея, избегайте создания ролей для каждого пользователя — это убивает производительность. Люди иногда пытаются сделать это, чтобы обойти ограничения системы разрешений Liferay - это очень плохая идея!

person Krzysztof Gołębiowski    schedule 20.07.2014
comment
На самом деле я хочу сделать то же самое, что я описываю только для целей тестирования, а не для проблемы этой производительности. Можете ли вы уточнить способ и как я могу реализовать - person user3595542; 21.07.2014
comment
У нас также есть возможность, что на одной странице рендеринга портлета jsp мы должны проверить его администратора или нет, если администратор, то мы показываем кнопку, иначе нет. Так есть ли в комплекте какой-либо файл утилиты, чтобы проверить это для входа администратора или нет?? - person user3595542; 21.07.2014
comment
Вы можете получить объект PermissionChecker из ThemeDisplay, а затем проверить метод isOmniadmin(), который сообщит вам, является ли пользователь администратором. Но это не очень хорошее решение, так как это не настраивается (в вашем коде жестко прописана роль administrator). В следующей статье описано, как это сделать правильно: liferay.com/web/guest/community/wiki/-/wiki/Main/ - person Krzysztof Gołębiowski; 21.07.2014
comment
Ext Js изначально не поддерживается. Почему бы тебе не использовать Ваадин? - person Krzysztof Gołębiowski; 22.07.2014
comment
это хорошо и работает только для jsp, но в нашем jsp datagrid контент рендерится через jEasyUi, поэтому весь код в java script для рендеринга. - person user3595542; 22.07.2014

Этот учебник поможет вам:

  1. Вам нужно создать XML-файл сопоставления действий ресурсов и добавить новый ключ действия (обычная строка)
  2. Поместите его в /src/main/resources/resource-action (назовите его default.xml)
  3. Создайте файл portlet.properties в каталоге /src/main/resources.
  4. Добавьте следующую строку: resource.actions.configs=resource-actions/default.xml

Разверните свой портлет и проверьте свое новое разрешение на вкладке Роли -> Выбрать роль -> Определить разрешения.

Вы можете проверить разрешения пользователя с помощью разрешенияChecker на вашем JSP.

  1. Вам нужен этот импорт: <%@ taglib prefix="theme" uri="http://liferay.com/tld/theme" %>
  2. Определить объекты: <theme:defineObjects />
  3. Теперь вы можете использовать объект проверки разрешений:

    permissionChecker.hasPermission(scopeGroupId, portletName, scopeGroupId,    permissionName)
    
person krstf    schedule 23.01.2015