Groupe 1A (socle)

Date de création : 01/10/2004
Dernière modification : 31/01/2006
Diffusion : internet

PAGS : Person Attributes Group Store

Les groupes sont définit dans un fichier de configuration XML uPortal_rel-2-X-X\properties\groups\PAGSGroupStoreConfig.xml
Ce service se base sur les attributs uPortal de personne afin de définir l'appartenance à une groupe. L'appartenance à un groupe est calculé, à la connexion de l'utilisateur, suivant ses attributs uPortal de personne. Par conséquent ce service est incapable de lister les membres d'un groupe.

Que sont les attributs uPortal de personne ?

Lors de la connexion d'un utilisateur uPortal va chercher a récupérer les attributs de l'utilisateur, pour ce faire il utilise le fichier uPortal_rel-2-X-X\properties\personDirectory.xml qui définit :

Exemple de mapping :
<entry key="eduPersonPrimaryAffiliation">          <value>uPortalTemplateUserName</value></entry>

eduPersonPrimaryAffiliation : nom de l'attribut dans la source de données (LDAP)

uPortalTemplateUserName : nom de l'attribut utilisable dans uPortal.

C'est donc sur les attributs uPortal de personne que le PAGS va constituer les groupes.

NB : Il vous possible d'ajouter vos attributs de personnes dans le fichier de mapping (selon votre source de données)

Fichier de configuration PAGS

Ce fichier définit les groupes, les attributs des membres des groupes ainsi que la hiérarchie des groupes entre eux.
Exemple de définition d'un groupe
<group>
   <group-key>TousEtud</group-key>
   <group-name>LDAP Tous les etudiants</group-name>
   <group-description>Tous les etudiants de l'etablissement</group-description>
   <selection-test>
   	<test-group>
   		<test>
   			<attribute-name>LDAPAffiliation</attribute-name>
   			<tester-class>org.jasig.portal.groups.pags.testers.StringEqualsIgnoreCaseTester</tester-class>
   			<test-value>student</test-value>
   		</test>
   	</test-group>
   </selection-test>
</group>

Ce groupe est définit par :

      1. Une clé group-key (il est a noté que la clé unique de ce groupe dans le portail est pags.TousEtud
      2. Un nom group-name
      3. Une description group-description
      4. Un ensemble de tests permettant de définir qui appartient au groupe

       

Les tests que l'on peut effectuer

Un groupe posséde un région selection-test cette region contient de 1 à n test-group et chaque test-group peut contenir de 1 à n test.

La partie test doit contenir :

      1. Un attribut (uPortal) a tester
      2. La classe qui représente le type de test
      3. La valeur à appliquer lors du test

Il existe plusieurs classe de type de test :

      1. IntegerEQTester : test = d'entier
      2. IntegerGETester : test >= d'entier
      3. IntegerGTTester : test > d'entier
      4. IntegerLETester : test <= d'entier
      5. IntegerLTTester : test < d'entier
      6. RegexTester : test sur une expression régulière (ATTENTION sans délimiteurs)
      7. StringEqualsIgnoreCaseTester : test = sur des chaines de caractères (Case insensitive)
      8. StringEqualsTester : test = chaines de caractères (Case sensitive)


La notion de ET/OU dans les tests :

La notion de ET est obtenu en mettant plusieurs test dans un test-group
<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>
   	<attribute-name>eduPersonAffiliation</attribute-name>
   	<tester-class>org.jasig.portal.groups.pags.testers.StringEqualsIgnoreCaseTester</tester-class>
   	<test-value>staff</test-value>
   </test>
</test-group>
eduPersonAffiliation=faculty && eduPersonAffiliation=staff

La notion de OU est obtenu en mettant plusieurs test-group avec un (ou plusieurs ) 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>
eduPersonAffiliation=faculty || eduPersonAffiliation=staff

La hiérachie des groupes entre eux

On peut établir une dépendance entre les groupes (hiérarchie) dans ce fichier de configuration. Cela se fait en utilisant le tag <members> ... </members> dans la définition du group.
Cette hiérachie s'opéré en tre les clé des groupes.

 <group>
   <group-key>TousEtud</group-key>
   <group-name>Tous les etudiants</group-name>
   <group-description>Tous les etudiants de l'etablissement</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>student</test-value>
   		</test>
   	</test-group>
   </selection-test>
   <members>
<member-key>uneformation</member-key> <member-key>uneautreformation</member-key>
</members>
</group> <group>
<group-key>uneformation</group-key>
<group-name>etudiant d'une formation</group-name>
.... </group> <group>
<group-key>uneautreformation</group-key>
<group-name>etudiant d'une formation</group-name>
.... </group>

On obtient ainsi :

    1. TousEtud
      1. uneformation
      2. uneautreformation