Как получить роль в Liferay Themes?

Как получить роль вошедшего пользователя в Liferay Themes? Как проверить, принадлежит ли Пользователь определенной роли?


person Vikas V    schedule 01.07.2013    source источник


Ответы (2)


UserLocalService имеет hasRoleUser метод, который может быть используется, чтобы узнать, принадлежит ли Пользователь к определенной роли. Код ниже можно поместить в файл navigation.vm в папке templates.

#set($UserLocalServiceUtil = $serviceLocator.findService("com.liferay.portal.service.UserLocalService"))
#if ($UserLocalServiceUtil.hasRoleUser(roleID, $user.getUserId())) // It takes roleID as input to check.
  //Proceed with whatever you want to 
#else
  //Proceed with something else

Примечание. Вместо com.liferay.portal.service.UserLocalService, если вы используете com.liferay.portal.service.UserLocalServiceUtil, что можно найти на некоторых ресурсах, таких как это, то вы столкнетесь с приведенным ниже исключением,

ERROR com.liferay.portal.kernel.bean.BeanLocatorException: org.springframework.beans.factory.NoSuchBeanDefinitionException: No
  bean named 'com.liferay.portal.service.UserLocalServiceUtil' is defined
  com.liferay.portal.kernel.bean.BeanLocatorException: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'com.liferay.portal.servi
ce.UserLocalServiceUtil' is defined

Другой способ,

#set($role=$serviceLocator.findService("com.liferay.portal.service.RoleLocalService"))
$role.getUserRoles($user_id)
person Vikas V    schedule 01.07.2013

Просто прокрутите объект $user, определенный в init.vm.

#set ($user_roles = $user.getRoles())
#foreach($role in $user_roles)
   $role.name<br />
#end
person htmlr    schedule 28.07.2013