uPortal peut utiliser plusieurs modes de gestion ou de stockage de groupes. Ces modes sont activés dans le fichier uportal-impl/src/main/resources/properties/groups/compositeGroupServices.xml
local
C'est la méthode de base : les groupes sont gérés et stockés en interne dans la base du portail. Ils peuvent être constitués d'utilisateurs ou de canaux (l'un ou l'utre pour chaque groupe).
Chaque groupe est référencé dans la table UP_GROUP
Les membres des groupes sont enregistrés dans la table UP_GROUP_MEMBERSHIP
On gère ces groupes et leurs membres avec l'interface de gestion de groupes group manager
PAGS (person attributes group store)
Avec cette méthode, on ne gère pas physiquement les groupes en base mais on évalue dynamiquement à quels groupes un utilisateur appartient lorsqu'il se connecte. Cette évaluation est faite en fonction des attributs de l'utilisateur.
Le principe est le suivant :
Les groupes PAGS sont référencés dans le fichier uportal-impl/src/main/resources/properties/groups/PAGSGroupStoreconfig.xml
Quand un utilisateur se connecte, le portail évalue, pour chaque groupe du fichier PAGSGroupStoreconfig.xml, si l'utilisateur appartient ou non à ce groupe en fonction des critères d'appartenance indiqués.
Le fichier PAGSGroupStoreconfig.xml
<Group-Store> <group> <group-key>TousPers</group-key> <group-name>LDAP Tout le personnel</group-name> <group-description>Tout le personnel de l'etablissement issu de LDAP</group-description> <selection-test> <test-group> <test> <attribute-name>eduPersonAffiliation</attribute-name> <tester-class>org.jasig.portal.groups.pags.testers.StringEqualsIgnoreCaseTester</tester-class> <test-value>faculty</test-value> </test> </test-group> <test-group> <test> <attribute-name>eduPersonAffiliation</attribute-name> <tester-class>org.jasig.portal.groups.pags.testers.StringEqualsIgnoreCaseTester</tester-class> <test-value>staff</test-value> </test> </test-group> <test-group> <test> <attribute-name>eduPersonAffiliation</attribute-name> <tester-class>org.jasig.portal.groups.pags.testers.StringEqualsIgnoreCaseTester</tester-class> <test-value>employee</test-value> </test> </test-group> <test-group> <test> <attribute-name>eduPersonAffiliation</attribute-name> <tester-class>org.jasig.portal.groups.pags.testers.StringEqualsIgnoreCaseTester</tester-class> <test-value>researcher</test-value> </test> </test-group> </selection-test> </group> ... </Group-Store>
Group
Identifiant du groupe
selection-test
Contient l'ensemble des tests à effectuer pour évaluer l'appartenance d'un utilisateur à ce groupe
test-group
Regroupe des test d'appartenance : tous les tests dans la même balise test-group sont ET-ifiés (associés avec un ET logique) : ils doivent être tous validés pour que le test renvoit VRAI
S'il y a plusieurs test-group, ils sont OU-ifiés (associés avec un OU logique)