Attributs des utilisateurs
Principe
Le portail peut utiliser des informations complémentaires sur l'utilisateur connecté pour :
- évaluer son appartenance à un groupe pags
- évaluer ses droits sur un canal ou un fragment
- afficher des informations à l'écran ou dans des logs
Ces informations complémentaires sont appelées attributs utilisateur.
Pour renseigner les attributs utilisateurs, le portail utilise une ou des sources de données.
Les sources de données, les attributs utilisateurs disponibles et les correspondances entre attributs utilisateurs et données des sources (colonnes de tables, entrées d'annuaires, etc.) sont paramétrés dans le fichier properties/personDirectory.xml
personDirectory.xml
Sources de données
Cette partie de personDirectory.xml est paramétrable directement à partir du fichier de configuration du portail config.properties :
Pour choisir un annuaire Ldap comme source de données, indiquer
esup.ldap.persondirs.use=true
L'annuaire est défini dans les paramètres esup.ldap.xxx
Pour indiquer la base de données du portail comme source de données, indiquer :
esup.db.persondirs.use=true
L'utilisation la plus commune est un annuaire Ldap. je ne me baserai que là-dessus pour la description des attributs :
Attributs
Par défaut, personDirectory.xml est livré avec une correspondance attribut uPortal/attribut ldap sur les attributs supann classiques.
Pour modifier ces attrbuts :
Copier update/uPortal/properties/personDirectory.xml dans custom/uPortal/properties/personDirectory.xml et travailler dans custom
Rechercher le bean uPortalLdapAttributeSource :
<!-- LDAP Person Attribute Source, uses the default ILdapServer via the LdapServices.getDefaultLdapServer method call --> @bg.use.ldap.persondirs@ <bean id="uPortalLdapAttributeSource" class="org.jasig.portal.services.persondir.support.LdapPersonAttributeDaoImpl"> <property name="ldapServer"> <ref bean="defaultLdapServer"/> </property> <property name="queryAttributes"> <list> <value>username</value> </list> </property> <property name="query"> <value>(uid={0})</value> </property> <property name="ldapAttributesToPortalAttributes"> <map> <entry key="eduPersonPrimaryAffiliation"> <set> <value>uPortalTemplateUserName</value> <value>eduPersonPrimaryAffiliation</value> </set> </entry> <entry key="supannCodeINE"> <value>supannCodeINE</value></entry> <entry key="supannEtuId"> <value>supannEtuId</value></entry> <entry key="supannEmpId"> <value>supannEmpId</value></entry> <entry key="@esup.ldap.groups.etu.formation@"> <value>esupEtuFormation</value></entry> <entry key="eduPersonAffiliation"> <value>eduPersonAffiliation</value></entry> <entry key="eduPersonNickname"> <value>eduPersonNickname</value></entry> <entry key="eduPersonPrincipalName"> <value>eduPersonPrincipalName</value></entry> <entry key="cn"> <value>cn</value></entry> <entry key="description"> <value>description</value></entry> <entry key="displayName"> <value>displayName</value></entry> <entry key="facsimileTelephoneNumber"> <value>facsimileTelephoneNumber</value></entry> <entry key="givenName"> <value>givenName</value></entry> <entry key="mail"> <value>mail</value></entry> <entry key="sn"> <value>sn</value></entry> <entry key="telephoneNumber"> <value>telephoneNumber</value></entry> <entry key="uid"> <value>uid</value></entry> </map> </property> </bean> <bean id="defaultLdapServer" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="staticMethod"> <value>org.jasig.portal.ldap.LdapServices.getDefaultLdapServer</value> </property> </bean> @end.use.ldap.persondirs@
Dans la balise map, modifiez/ajoutez les balises entry :
L'attribut uPortal (indiqué par value) prendra la valeur de l'attribut Ldap (indiqué par key)
Il est possible de faire correspondre un attribut Ldap à plusieurs attributs uPortal en spécifiant la balise set dans entry et en listant plusieurs value (voir l'entrée eduPersonPrimaryAffiliation)