Ce canal est dépendant du MAG (testé en versions 1 et 2). Pour installer le MAG, rendez vous sur http://esup-portail.org/consortium/espace/Socle_1A/esup-utils-mag/index.html.
Vous pouvez télécharger ici l'exemple que nous allons détailler. Voir la documentation du fichier de configuration du MAG,également sur son plugin RestrictedAction car certaines action MAG sont filtrées par groupe.
Il est possible de bloquer certaines action à un (ou plusieurs) groupe uPortal. Pour cela, il faut commencer par les déclarer dans le fichier de configuraiton.
<groupmapping> <group localname="PERS" uportalid="local.106"/> <group localname="ETUD" uportalid="local.103"/> </groupmapping>Par exemple, les seuls groupes que nous utiliseront sont "local.106" que nous appellerons "PERS" dans le reste du fichier de configuration et "local.103" que nous appellerons "ETUD".
Comme le canal se base sur le MAG, il faut définir les actions.
Il faut en premier lieu définir l'action par défaut.
<!-- ACTION CENTRALE --> <action name="default" classname="org.esupportail.portal.channels.CPref.Menu" rendertype="xsl"> <param name="PERS"> <value>menu_personnel.xsl</value> </param> <param name="ETUD"> <value>menu_etudiant.xsl</value> </param> </action>Cette action pointe sur la page la classe gérant le menu. Vous pouvez, comme le montre l'exemple, avoir une page xsl de menu par groupe que vous avez déclaré ci-dessus.
Pour les autres actions, il faut positionner les attributs LDAP qui seront utilisés :
<!-- Information personnel pour un membre du personnel --> <action name="infoPers" classname="org.esupportail.portal.channels.CPref.actions.Default" sslfile="infoPers.ssl" rendertype="ssl" log="info"> <param name="plug.esup.restrictedAction"> <value>PERS</value> </param> <param name="attributeRead"> <value>uid</value> <value>givenname</value> <value>sn</value> <value>supannorganisme</value> <value>postaladdress</value> </param> <param name="attributeWrite"> <value>telephonenumber</value> <value>facsimiletelephonenumber</value> <value>description</value> <value>supanncivilite</value> <value>labeleduri</value> </param> <param name="attributeXsl"> <value>uid</value> </param> </action>Dans cette action, nous pouvons voir que l'accès est restreind aux membres de "PERS". Cette restriction est bien entendue optionnelle.
La liste des attributeRead définis les attributs qui seront lus dans le LDAP pour l'affichage. La liste des attributeWrite définis les attributs qui seront lus et qui seront modifiable par l'utilisateur. La liste des attributeXsl définis les attributs qui seront envoyés à la feuille xsl (pour faire des testes sur la valeur par exemple).
Dans cette partie, vous allez préciser les paramètres LDAP que vous allez utiliser. Entrez tout d'abord les informations du serveur, dans le tag "ldap", en séparant les adresses accessibles pour la lecture et celle accessible pour l'écriture.
<ldap urlRead="ldap://ldap.univ.fr:392 ldap://ldap2.univ.fr:392" urlWrite="ldap://ldap.univ.fr:392"Ensuite, précisez la base de recherche des personnels.
baseDn="ou=People,dc=univ,dc=fr"La dernière chose à préciser dans les informations du serveur est le filtre de recherche d'une personne. Indiquez par un %u l'endroit ou le login devra être placé.
filtreDn="(&(objectclass=inetOrgPerson)(uid={u}))" >Vous pouvez préciser aussi les bindDn passDn pour la connexion "anonyme". Pour cela, saisissez le bindDn (dn complet) et le passDn.
A l'intérieur de ce tag ldap, décrivez la liste des attribts que vous voulez formater. Pour affecter un format à un attribut, précisez le nom ldap de l'attribut et la classe correspondante :
<attribut ldapName="facsimiletelephonenumber" format="org.esupportail.portal.channels.CPref.formats.supann.TelephoneNumber" />Soit vous avez besoin de différencier le format selon les différents groupes uPortal déclarés plus haut. Dans ce cas, vous ne devez pas remplir l'attribut "format" comme ci-dessus, mais créer un sous tag "format" par groupe.
<attribut ldapName="n2atrmaildrop" > <format group="PERS" name="org.esupportail.portal.channels.CPref.formats.nancy2.RedirectionPersonnelN2"/> <format group="ETUD" name="org.esupportail.portal.channels.CPref.formats.nancy2.RedirectionEtudiantN2"/> </attribut>
<divers passwordInSession="no" />Avec cette option, l'utilisateur devra saisir son mot de passe avant chaque paneau de modification. Par contre, avec la valeur "yes", l'utilisateur saisie une seule fois son mot de passe pour la durée de la session uportal.
Des formats standards sont fournis avec le package. Ils se trouvent dans le package org.esupportail.portal.channels.CPref.formats.supann. Vous pouvez en écrire d'autres. Je conseille de les mettre dans un package séparé, pour les repérer plus facilement : exemple org.esupportail.portal.channels.CPref.formats.univ.nomFormat
Les formats que vous définissez doivent hériter de la classe org.esupportail.portal.channels.CPref.formats.Format. Cette classe propose différentes méthodes abstraites que vous devrez re définir dans vos formats. Chacune des méthodes décrites ci-dessous (sauf "exemple") peux avoir en paramètre un tableau de valeur. Ce cas de figure est pris en charge directement par la classe Format. Cela signifie que vous n'avez qu'a spécifiér les caractéristiques pour une valeur et lors de la vérification de plusieurs valeurs, les appels sont faits automatiquement.
Cette méthode décrit les différentes expressions régulières acceptées lors de la saisie et retourne true si le format est correct, false sinon.
L'utilisateur peut avoir la possibilité de saisir la valeur dans différents formats. Or il faut normaliser les entrées dans le LDAP. Pour cela, avant chaque écriture d'attribut, cette méthode est appellée et transforme la saisie utilisateur dans un format spécifique.
Lors de l'affichage d'une valeur d'un attribut, il y a un appel à cette méthode qui transforme la valeur enregistrée dans LDAP en une valeur plus conviviale pour l'utilisateur.
Vous pouvez décrire ici autant d'exemple que vous voulez. Ils apparaitront à coté du champs lors de la saisie.
L'import de "common" permet d'avoir accès aux templates d'affichage des attributs.
<xsl:import href="../../common.xsl" />
Dans une ligne d'un tableau html, appliquez le template comme dans l'exemple ci-dessous :
<tr> <xsl:apply-templates select="INFOS/ATTRIBUTE[@name='uid']"> <xsl:with-param name="label">Login</xsl:with-param> </xsl:apply-templates> </tr>Appliquez le template ATTRIBUTE mais en ne sélectionnant que l'attribut dont le nom est "uid". Ceci permet de positionner le label lors de l'affichage. L'intérêt de passer par ce template est que les styles css seront mis automatiquement.
Vous devez appliquer le même template que pour l'affichage mais en précisant des paramètres supplémentaires.
<tr> <xsl:apply-templates select="INFOS/ATTRIBUTE[@name='telephonenumber']"> <xsl:with-param name="label">Téléphone</xsl:with-param> <xsl:with-param name="modifiable">true</xsl:with-param> <xsl:with-param name="saisie">true</xsl:with-param> <xsl:with-param name="allowMultiValue">true</xsl:with-param> </xsl:apply-templates> </tr>
Préparation du fichier de configuration ConfigChannel.xml.: mettre les renseignements relatifs aux attributs qu'il faut gérer
Préparation du déploiement : modifier les chemins d'installation du fichier build.properties.
Si vous aviez déjà installé une ancienne version du canal, lancez la commande ant undeploy, pour effacer toute trace du canal dans l'environnement de production.
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.
Cette méthode remplace toute la démarche de publication.
Utilisez la commande ant deploypubchan qui va déposer le fichier de déploiment (pubchan_CPref.xml) 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 de spécifier l'attribut "serverView".
Ensuite, lancez la commande "ant pubchan -Dchannel=pubchan_CPref.xml". depuis le répertoire "racine esup".
Vous pouvez bien sur créer autant de fichier xml que vous désirez. Par exemple, rien n'interdit d'en avoir un pour la vue en anonyme, un pour les étudiants et un pour le personnel.