【问题标题】:How to obtain Role in Liferay Themes?如何在 Liferay 主题中获得角色?
【发布时间】:2013-06-28 11:26:09
【问题描述】:

如何在 Liferay Themes 中获取已登录用户的角色?如何检查用户是否属于特定角色?

【问题讨论】:

    标签: liferay liferay-6 liferay-theme liferay-velocity


    【解决方案1】:

    UserLocalService 具有hasRoleUser 方法,可用于确定用户是否属于特定角色。 下面的代码可以放在templates文件夹下的navigation.vm文件中。

    #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.UserLocalServiceUtil,而不是com.liferay.portal.service.UserLocalService, 可能在this 等资源中找到,那么您将遇到以下异常,

    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)
    

    【讨论】:

      【解决方案2】:

      只需遍历 init.vm 中定义的 $user 对象

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多