2011-03-31 65 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); 
    } 
}