Liferay - 为用户获取用户组

时间:2014-09-25 08:16:27

标签: liferay-6

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

使用UserGroupLocalServiceUtil是唯一的方法吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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

  3. 还有许多其他有用的方法可供使用。

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

      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