您如何获取Liferay 6.2网站的用户列表



我正在尝试获取Liferay 6.2网站的用户列表,但我似乎找不到这样做的方法。我有 groupId,我知道这是正确的,因为我可以获取文档,但查询只获得直接添加的用户,而不是继承的用户(例如来自组织(。

我只是使用方法UserLocalService.getGroupUsers(groupId),然后遍历它们。如何获取所有用户(即与"网站管理"中的"网站成员资格"相同,但没有分页(?

更新

我有一个Liferay门户实例,它有几个具有相关站点的组织。组织 A 有用户 1、2、3 等。组织 B 有用户 4、5、6。它们具有相同的公司 ID(因为它们是同一门户的一部分(,但组 ID 不同。我只想要组织 A 中的人(直接添加,是已分配的任何用户组或组织的一部分(。该站点也可以是非组织站点(即分配的组织A和B,但不是任何其他组织,例如新的组织C(,用于组织之间的文档共享。据我了解,所有网站在内部都被称为组,从使用文档库开始。

您可以执行两次调用来获取站点和组织用户,然后执行一次调用以获取分配的组织,循环访问它们并获取其用户。然后合并所有结果:

HashSet<User> groupAndOrganizationUsersSet = new LinkedHashSet<>();
groupAndOrganizationUsersSet.addAll(UserLocalServiceUtil.getGroupUsers(groupId));
groupAndOrganizationUsersSet.addAll(UserLocalServiceUtil.getOrganizationUsers(
GroupLocalServiceUtil.getGroup(groupId).getOrganizationId()));
for (Organization organization : 
OrganizationLocalServiceUtil.getGroupOrganizations(groupId)) {
groupAndOrganizationUsersSet.addAll(UserLocalServiceUtil.getOrganizationUsers(
organization.getOrganizationId()));
}
List<User> groupAndOrganizationUsers = new ArrayList<>(groupAndOrganizationUsersSet);

也许这个

UserLocalServiceUtil.getCompanyUsers(long companyId, int start, int end)

对于标准的非分页结果(您知道风险(,请使用

UserLocalServiceUtil.getCompanyUsers(PortalUtil.getDefaultCompanyId(), -1, -1)

最新更新