2011-03-31 64 views
0

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

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

回答

0

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

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); 
    } 
}