2011-03-31 1 views
0

Je travaille sur une nouvelle implémentation liferay. J'ai tous mes utilisateurs dans un système externe, et j'ai utilisé l'environnement externe. authentifier par mon propre système d'authentification. Je stocke également des rôles dans ce même système. J'ai réussi à les transmettre à liferay afin que tous les rôles de mes utilisateurs soient disponibles dans liferay. Je souhaite créer une organisation ou une communauté associée à un rôle. Par exemple, si j'ai un rôle appelé «myusers» dans mon système externe, je voudrais lier ce rôle à une organisation ou une communauté dans liferay. Puis, lorsqu'un utilisateur se connecte à liferay avec ce rôle, il peut faire partie de cette organisation ou de cette communauté. Est-ce possible dans liferay? Je sais que c'est un peu à la traîne dans le flux normal d'ajouter des rôles aux utilisateurs, puis d'ajouter un utilisateur à une communauté ou à une organisation.liferay permettre l'organisation ou la communauté par rôle

Répondre

0

Ce que je fini par faire était d'utiliser la fonctionnalité de expando intégrée dans Liferay. Pour ce faire, je permet d'entrer une liste de rôles qui doivent correspondre à cette organisation. Cela me permet d'examiner les rôles de mes utilisateurs lorsqu'ils se connectent et de déterminer de quelles organisations ils devraient être membres. Ensuite, j'ajoute/supprime par programmation les utilisateurs des organisations en fonction des rôles définis dans l'attribut expando et des rôles assignés à l'utilisateur.

2

Vous pouvez modifier le code ci-dessous pour vérifier si l'utilisateur appartient à un rôle, puis l'ajouter à l'organisation appropriée.

Pour ajouter un utilisateur à toutes les organisations:

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