我正在开发一个新的liferay实现。我将所有用户都放在外部系统中,并使用了外部环境。通过我自己的身份验证系统进行身份验证我还将角色存储在同一个系统中。我已经能够成功地将这些传递给liferay,以便我的所有用户角色都可以在liferay中使用。
我想创建一个与角色相关联的组织或社区。例如,如果我在我的外部系统中有一个名为“myusers”的角色,我想将该角色与liferay中的组织或社区联系起来。然后,当用户使用该角色登录到liferay时,他们将能够成为该组织或社区的一部分。这在liferay中有可能吗?我知道这是向用户添加角色然后将用户添加到社区或组织的常规流程的倒退。
答案 0 :(得分:2)
您可以修改以下代码以检查用户是否属于某个角色,然后将其添加到相应的组织。
将用户添加到所有组织:
public final static void addAllOrganizationstoUser(long userId) throws SystemException, PortalException {
// gets all organizations
List<Organization> organizations = OrganizationLocalServiceUtil.getOrganizations(ALL_POS, ALL_POS);
long[] users = new long[]{userId};
// register user to orgs
for (Organization organization : organizations) {
UserLocalServiceUtil.addOrganizationUsers(organization.getOrganizationId(), users);
}
}
答案 1 :(得分:0)
我最终做的是使用liferay内置的expando功能。这样做我允许输入应该映射到该组织的角色列表。这使我可以查看用户登录时的角色,并确定他们应该成为哪些组织的成员。然后,我根据expando属性中定义的角色和分配给用户的角色,以编程方式添加/删除组织中的用户。