2015-08-24 6 views
2

Я пробовал вопросы по SO для решения этой задачи, пока не получилось. Я нашел некоторые аналогичные вопросы, но никакого решения.Liferay Theme - Velocity - Проверьте, есть ли у пользователя пользовательская роль

Я пытаюсь добавить своего рода проверку роли, чтобы узнать, определен ли пользователь, определенная пользователем. Если так. Они получают док-станцию.

В настоящее время он проверяет, являются ли они администратором во всем сайте. Это то, что я не хочу давать людям. Они должны быть похожими на Power User с определенным набором разрешений.

Текущая проверка, как так:

#if ($is_signed_in && $permissionChecker.isOmniadmin()) 

Я видел примеры, проверяя для конкретной роли ID, которые выглядят, как они будут работать.

Пример здесь:

#set($UserLocalServiceUtil = $serviceLocator.findService("com.liferay.portal.service.UserLocalService")) 
#if ($UserLocalServiceUtil.hasRoleUser(roleID, $user.getUserId())) 

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

Так

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

ИЛИ

Есть ли какое-то .getRoleName селектора, что я упускать из вида?

ответ

2

Возможно, этот метод может помочь вам выполнить код.

Можно ли иметь роль по имени (а имя может храниться & сконфигурированный темовые)

#set($RoleLocalServiceUtil = $serviceLocator.findService("com.liferay.portal.service.RoleLocalService")) 
#set ($role = $RoleLocalServiceUtil.fetchRole(roleName, $themeDisplay.companyId)) 
0

Это может быть достигнуто в одном вызове метода

#set ($roleLocalServiceUtil = $serviceLocator.findService("com.liferay.portal.service.RoleLocalService")) 

#if ($roleLocalServiceUtil.hasUserRole($user.getUserId(),$user.getCompanyId(), "<YOUR ROLE NAME>", true)) 

Спасибо.

Смежные вопросы