【问题标题】:Liferay - Get User Groups for a userLiferay - 获取用户的用户组
【发布时间】:2014-09-25 08:16:27
【问题描述】:

我需要获取给定用户的用户组列表。 该用户应该可以是当前登录用户或 Liferay 中的任何其他用户。 我需要使用什么 Liferay API 调用?

使用UserGroupLocalServiceUtil 是唯一的方法吗?

【问题讨论】:

    标签: liferay-6


    【解决方案1】:

    有几种方法可以检索用户组列表。

    1. 首先检索用户对象,并在用户对象上调用getUserGroups(),如下所示

      List<UserGroup> userGroupList = user.getUserGroups();

    2. 使用UserGroupLocalServiceUtil 类检索用户组列表。

      List<UserGroup> userGroupList = UserGroupLocalServiceUtil.getUserUserGroups(user.getUserId());

    还有许多其他有用的方法可以使用。

    • 通过这些方法对检索到的用户组列表进行分页:

      List<UserGroup> userGroupList = UserGroupLocalServiceUtil.getUserUserGroups(userId, start, end);

    • 对用户组列表进行分页和排序

      List<UserGroup> userGroupList = UserGroupLocalServiceUtil.getUserUserGroups(userId, start, end, orderByComparator)

    • 获取用户的用户组数

      int userGroupCount = UserGroupLocalServiceUtil.getUserUserGroupsCount(userId);

    要获取 User 对象,您可以使用以下任何 API 调用。

    User user = UserLocalServiceUtil.getUserById(userId);
    User user = UserLocalServiceUtil.getUserByScreenName(companyId, screenName);
    User user = UserLocalServiceUtil.getUserByEmailAddress(companyId, emailAddress);
    

    上述调用中的 companyId 可以使用以下方法检索:

    long companyId = PortalUtil.getCompanyId(request);

    要获取当前登录用户,请参考https://stackoverflow.com/a/10555521/668240

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      • 2012-05-18
      • 2011-03-17
      • 1970-01-01
      相关资源
      最近更新 更多