如何获得 Liferay 6.2 站点的用户列表
How do you get a list of users for a Liferay 6.2 site
我正在尝试获取 Liferay 6.2 站点的用户列表,但我似乎找不到这样做的方法。我有 groupId,我知道它是正确的,因为我可以获得文档,但查询只获取直接添加的用户,而不是继承的用户(例如来自组织)。
我只是使用方法UserLocalService.getGroupUsers(groupId)
,然后循环遍历它们。如何获得所有用户(即与站点管理中的站点成员相同,但没有分页)?
更新
我有一个 Liferay 门户实例,它有几个组织和相关站点。组织 A 有用户 1、2、3 等。组织 B 有用户 4、5、6。它们具有相同的公司 ID(因为它们是同一门户的一部分),但组 ID 不同。我只想要组织 A 中的那些人(直接添加,已分配的任何用户组或组织的一部分)。该站点也可以是非组织站点(即分配的组织 A 和 B,但不是任何其他站点,例如新的组织 C),用于组织之间的文档共享。根据我的理解,所有站点在内部都称为组,因为它们使用文档库。
也许这个
UserLocalServiceUtil.getCompanyUsers(long companyId, int start, int end)
对于标准的非分页结果(您知道风险)使用
UserLocalServiceUtil.getCompanyUsers(PortalUtil.getDefaultCompanyId(), -1, -1)
您可以进行两次调用以获取站点和组织用户,然后进行一次调用以获取分配的组织,遍历它们并获取其用户。然后合并所有结果:
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);
我正在尝试获取 Liferay 6.2 站点的用户列表,但我似乎找不到这样做的方法。我有 groupId,我知道它是正确的,因为我可以获得文档,但查询只获取直接添加的用户,而不是继承的用户(例如来自组织)。
我只是使用方法UserLocalService.getGroupUsers(groupId)
,然后循环遍历它们。如何获得所有用户(即与站点管理中的站点成员相同,但没有分页)?
更新
我有一个 Liferay 门户实例,它有几个组织和相关站点。组织 A 有用户 1、2、3 等。组织 B 有用户 4、5、6。它们具有相同的公司 ID(因为它们是同一门户的一部分),但组 ID 不同。我只想要组织 A 中的那些人(直接添加,已分配的任何用户组或组织的一部分)。该站点也可以是非组织站点(即分配的组织 A 和 B,但不是任何其他站点,例如新的组织 C),用于组织之间的文档共享。根据我的理解,所有站点在内部都称为组,因为它们使用文档库。
也许这个
UserLocalServiceUtil.getCompanyUsers(long companyId, int start, int end)
对于标准的非分页结果(您知道风险)使用
UserLocalServiceUtil.getCompanyUsers(PortalUtil.getDefaultCompanyId(), -1, -1)
您可以进行两次调用以获取站点和组织用户,然后进行一次调用以获取分配的组织,遍历它们并获取其用户。然后合并所有结果:
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);