0

我正在研究一个新的 liferay 实现。我的所有用户都在外部系统中,并且使用了外部环境。通过我自己的身份验证系统进行身份验证。我还将角色存储在同一系统中。我已经能够成功地将这些传递给 liferay,以便我的所有用户角色都可以在 liferay 中使用。

我想创建一个与角色相关联的组织或社区。例如,如果我在我的外部系统中有一个名为“myusers”的角色,我想将该角色与 liferay 中的组织或社区联系起来。然后,当用户以该角色登录 liferay 时,他们将能够成为该组织或社区的一部分。这在liferay中可能吗?我知道这有点倒退到 Liferay 中向用户添加角色然后向社区或组织添加用户的正常流程。

4

2 回答 2

1

您可以修改以下代码以检查用户是否属于某个角色,然后将他添加到相应的组织中。

要将用户添加到所有组织:

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);
    }
}
于 2011-04-07T15:17:52.493 回答
0

我最终做的是使用 liferay 内置的 expando 功能。这样做我允许输入应该映射到该组织的角色列表。这使我可以在用户登录时查看他们的角色并确定他们应该成为哪些组织的成员。然后,我根据 expando 属性中定义的角色和分配给用户的角色,以编程方式从组织中添加/删除用户。

于 2011-04-21T14:43:09.703 回答