Groupe 3 (services applicatifs) | ||
Date de création : | 16 octobre 2003 | |
Dernière modification : | 14 Janvier 2004 | |
Diffusion : | internet |
Ce document décrit le fichier de configuration utilisé par le canal annuaire, donne une trame des écrans qui devraient être générés à partir d'un fichier de configuration exemple.
Les sources sont disponibles dans le zip : esup-canal-annuaire-1.0.6.zip
La version 2 est disponible en version : esup-canal-annuaire-2.1-RC-3.zip et la documentation spécifique ce cette version est sur https://www.esup-portail.org/consortium/espace/Comm_2D/annuaireV2/sommaire.html
Ce canal utilise les librairie "commons-beanutils","commons-digester".
Préparation du fichier de configuration CAnnuaire.xlm.: mettre les renseignements relatifs aux serveurs et aux attributs importants.
Préparation du déploiement : modifier le deploy.home du fichier build.properties.
Lancement de la commande "ant deploy", pour déployer le canal dans les
bons répertoires.
L'administrateur peut maintenant publier les canaux dont il a besoin en fonction
du paramètre d'instanciation : "serverView". Pour cela, il y a 2 méthodes
:
La plus simple étant de publier le canal de manière normale, par l'interface WEB prévue à cet effet.
La seconde étant d'utiliser la commande "ant pubchan -Dchannel=CAnnuaireGlobal.xml". Ce fichier CAnnuaireGlobal.xml remplace toute la démarche de publication. Il faut le déposer dans le répertoire {uPortal}/properties/chanpub. Les informations nécessaires à la publication sont décrites dans des tags XML, vous permettant ainsi même spécifier l'attribut "serverView".
La configuration de ce canal est décrite dans un fichier xml : CAnnuaire.xml. Une dtd lui est associée : CAnnuaire.dtd.
Le fichier CAnnuaire.xml décrit est bien sûr un exemple. Deux documents xml associés à cet exemple sont également disponible : ListeDisciplines.xml et ListeFormations.xml.
La dtd de l'annuaire contient de nombreux commentaires; il est recommandé de les consulter.
Le fichier CAnnuaire.xml décrit le paramétrage du ou des annuaire(s) qui sont accessibles à ce canal. Il est lu une seule fois au démarrage du portail.
Sa structure générale est la suivante (la cardinalité de chaque élément est indiquée) :
<directories> | <!-- root element--> | |||
<tables> | <!-- listes de tables a monter en memoire (0,1) --> | |||
<table> | <!-- description d'une table (1,n) --> | |||
<item> | <!-- description d'un item de la table (0,n) --> | |||
<directory> | <!-- description d'un annuaire. (1,n) --> | |||
<server> | <!-- serveur ldap a atteindre (1.1) --> | |||
<request> | <!-- permet de batir la requete et d'afficher le formulaire de saisie (1,1) --> | |||
<elemOfRequest> | <!-- un element de la requete (1,n) --> | |||
<card> | <!-- decrit la fiche finale, et la liste intermediaire eventuelle (1,1) --> | |||
<line> | <!-- une ligne de la fiche individu (1,n) --> |
Facultatif. Cet élément permet de décrire et de remplir des tables mémoire qui seront utilisées par le canal annuaire.
Les tables sont bien sûr constituées de plusieurs enregistrements
(items).
Un item comprend une valeur (value) et éventuellement un code associé
(code).
pas d'attributs
tableDécrit et donne les informations pour remplir une table.
Il existe 3 types de tables
Pour ces 2 derniers cas, les tables sont raffraichies périodiquement (paramètre ttl de directories). Ceci n'est pas encore traité.
attributs :
remarque :
Dans le cas d'une table xml : le format de celle-ci est figé (voir cet exemple) ; il est de la forme :
<list> <item code="CNU01" value="Droit Privé et Sciences Criminelles" /> <item ...> </list>
l'attribut 'code' est facultatif. S'il n'est pas présent, il ne doit
l'être dans aucun 'item'.
L'attribut 'value' contient la valeur de cet item.
Voir l'élément 'item' du fichier CAnnuaire.xml : la structure est identique
itemC'est un enregistrement d'une table de type static.
attributs :
C'est l'élément racine.
attributs :
Décrit un annuaire particulier.
attributs :
Précise les paramètres de connexion LDAP pour cet annuaire.
attributs :
Cet élément permet de définir la requête LDAP à
générer pour la recherche dans l'annuaire.
Il permet également de construire le formulaire d'interrogation.
Il est composé d'elemOfRequest. La requête sera composée d'un et (&) avec chaque élément de requête non vide généré.
attributs :
C'est un élément d'une requête. Il permet d'une part, de construire éventuellement un champ du formulaire de saisie, et d'autre part, un élément de la requête finale.
Il existe 4 types d'éléments :
attributs :
Permet de définir la fiche finale de l'utilisateur, et éveuellement, le tableau intermédiaire si plusieurs utilisateurs répondent au critére de la recherche.
attributs :
C'est une ligne de la fiche finale.
2 types :
attributs :
Lors de la déclaration du canal par l'administrateur, celui-ci peut saisir le 'code' (cf name dans la configuration) de l'annuaire concerné dans le parametre "serverView". Il peut éventuellement saisir une liste de code,séparés par des virgules, voire "*" pour tous les annuaires. Dans ces cas, un menu déoulant permet à l'utilisateur de choisir l'annuaire de travail. Par défaut, si le paramètre n'est pas saisi, cela équivaut à mettre "*".
Le menu déroulant s'affiche dans le même ordre que celui saisi par l'administrateur. Le premier annuaire est celui par défaut.
Dans un premier temps, afin de limiter la complexité, nous ne traitons pas les requêtes sur l'appartenance à un groupe LDAP.
On part du fichier CAnnuaire.xml passé en exemple.
L'affichage initial, dans le cas de l'annuaire du personnel ressemblerait à celà (le stype à part, bien sûr) :
Ici, nous avons supposé que l'utilisateur a saisi 'ma', choisi 'CRI'
comme composante et n'a pas utilisé la discipline comme critère
de recherche.
On suppose également qu'il n'y a pas d'élément de requête
ayant l'attribut 'approx' à la valeur true.
La requête générée serait celle-ci :
La fiche résultat serait la suivante :
On voit qu'il y a un lien actif sur l'affichage au bas de chaque fiche ; c'est un lien vers un annuaire externe plus complet.
S'il y avait eu trop de résultats à la requête, ici strictement plus que 3 (cf maxCard de la config), une liste intermédiaire aurait été générée. Pour celà, recherchons les personnes dont le nom commence par "ma" mais sans se limiter à la composante CRI :
Dans le fichier de configuration, si on modifie l'attribut "type" de l'"ElemOfRequest" composante du serveur du personnel en "textTable", le formulaire obtenu sera :
On peut remarquer que la liste déroulante des composantes est devenu
un zone de texte. Cela permet de laisser la saisie libre. Au lieu de chercher
une valeur (dans notre exemple : "CRI") das une liste avec beaucoup
d'options, il suffit de saisir le nom ou une partie du nom de la valeur que
l'on cherche (par exemple "cri").
Alors la recherche compte une étape de plus. En effet, dans un premier
temps, le canal va rechercher les entrées de la table dont les valeurs
correspondantes à la zone de texte (suivant l'attribut searchValue).
Puis le filtre est généré avec un "OU" global
sur chacun des codes trouvés. Et enfin, la recherche continue normalement,
pour afficher les résultats :
La possibilité de déclarer plusieurs "directory" permet de nombreuses utilisations. Rappellons que chaque "directory" possède ses propres caractéristiques de connexion, de formulaire, d'affichage de réponse. Alors il est tout à fait possible (ce cas est fournit en exemple ici) d'avoir un "directory" pointant sur le serveur du personnel avec dans les champs du formulaire un "ElemOfRequest" type "direct" spécifiant une recherche dans les personnes n'étant pas en liste rouge et un autre "directory" sans ce champ. De là vous pouvez publier un canal avec le paramètre "serverView = persPublic" pour rechercher dans l'annuaire public et publier un canal avec le paramètre "serverView = persPrive" pour les personnes authentifiées.
Création : 16 octobre 2003 - Vincent MATHIEU | |
Modifications : |