Documents:Ajout CImap dans Header

Un article de Wiki ESCO-Portail.

Sommaire

Introduction

L'objectif est de placer le canal CImap dans l'en-tête du portail pour les populations concernées (typiquement les élèves pour l'implantation dans NetO'Centre).
Ce canal CImap a été modifié en deux endroits :

  • .../source/org/esupportail/portal/channels/CImap/CImap.java : "private final static int cacheDefaultTimeOut = 900; // en secondes", afin de ne pas trop solliciter le serveur Imap
  • webpages/stylesheets/org/esupportail/portal/channels/CImap/CImap.xsl : la feuille de style a été modifiée afin de ne laisser voir qu'une enveloppe facilement intégrable dans le bandeau. L'image est différente s'il y a ou non du courrier pour l'utilisateur.


Concernant le portail, les modifications ont concerné la feuille xhtml-theme.xsl et les layouts des utilisateurs modèles pris en compte lors de la première connexion d'un utilisateur (voir la création des layouts des établissements).
Pour que tous les utilisateurs, qui se sont déjà connectés au portail et qui sont concernés par le canal (les élèves), aient ce canal dans le bandeau, le plus pratique est de les supprimer afin que leur environnement soit recréé lors de leur prochaine connexion.
Enfin, pour que tous les nouveaux utilisateurs soient à l'avenir concernés sans que toute ces manipulations soient à refaire, les layouts des utilisateurs demo et fragment Template sont également modifiés.

Récupération de la liste des utilisateurs du portail concernés

Dans Sarapis

La liste des élèves qui ont activé leur compte :

tee eleves_actifs.txt
SELECT uid FROM apersonne WHERE categorie = 'Eleve' AND validationCharte <> '';

Dans la base du portail

La liste des comptes :

tee up_user.txt
SELECT user_name FROM up_user;

Ces listes sont ensuite traitées pour ne garder que la liste des uid concernés et la liste des utilisateurs modèles (etab-skin) :

awk '{print $2}' eleves_actifs.txt > liste_uid_eleves_sarapis
awk '{print $2}' up_user.txt > liste_name_portail
grep skin liste_name_portail > liste_skin

Traitement des données

Les scripts de traitement, ainsi que les fichiers data issus des opérations mentionnées ci-dessus, sont placés sur chaque serveur du portail esco, dans l'arborescence /home/esco/traitement_eleves/.
Deux scripts sont utilisés :

  • pour créer les tâches ant d'export et d'import des layouts utiles
  • pour créer les tâches ant de suppression des utilisateurs concernés de la base du portail.

Génération des tâches ant d'export/import des layouts des modèles (etab-skin)

generer_ant_export_import_skin.sh

REP_DATA="/home/esco/traitement_eleves/data"
REP_SCRIPTS="/home/esco/traitement_eleves/scripts"
LISTE_SKIN="$REP_DATA/liste_skin"
EXPORT="$REP_SCRIPTS/taches_ant_export_layout_skin.sh"
IMPORT="$REP_SCRIPTS/taches_ant_import_layout_skin.sh"
 
>$EXPORT
>$IMPORT
 
(while read name
do
        echo "ant layout.export -Dusername=$name" >>$EXPORT
        echo "ant layout.import -Dusername=$name" >>$IMPORT
done)<$LISTE_SKIN

Génération des tâches ant de suppression des utilisateurs concernés

generer_taches_ant_del.sh

REP_DATA="/home/esco/traitement_eleves/data"
REP_SCRIPTS="/home/esco/traitement_eleves/scripts"
SARAPIS="$REP_DATA/liste_uid_eleves_sarapis"
PORTAIL="$REP_DATA/liste_name_portail"
RESULTAT="$REP_SCRIPTS/taches_ant_supp.sh"
 
>$RESULTAT
 
(while read uid
do
	if (grep $uid $SARAPIS)
	then echo "ant user.del -Dusername=$uid" >>$RESULTAT
	fi
done)<$PORTAIL

Export-modification et import des layouts

Export des layouts nécessaires

Sous le répertoire de déploiement du portail :

/home/esco/traitement_eleves/scripts/taches_ant_export_layout_skin.sh

Modification des layouts

Sous ..../Portal/uPortal_rel-2.6.1-GA/properties/layouts, modification un à un des fichiers xml concernés pour y mettre le canal CImap :

<?xml version="1.0" encoding="UTF-8"?>
<layout user="Cdf_Romo-skin">
    <root-folder>
        <folder mutable="True" removable="True" type="header">
            <name>Header folder</name>
            <channel fName="header"/>
            <channel fName="portal/login/general"/>
            <channel fName="session-locales-selector"/>
	    <channel fName="CImap"/>
        </folder>
        <folder mutable="True" removable="True" type="footer">
            <name>Footer folder</name>
            <channel fName="footer"/>
        </folder>
    </root-folder>
</layout>

Les fichiers xml concernés sont :

  • tous les etab-skin.xml issus de l'export des layouts
  • demo.xml
  • fragmentTemplate.xml

Import des layouts

Après arrêt du portail (pour effectuer les opérations d'écriture en toute tranquillité), sous le répertoire de déploiement du portail :

/home/esco/traitement_eleves/scripts/taches_ant_import_layout_skin.sh
ant layout.import -Dusername=demo
ant layout.import -Dusername=fragmentTemplate

Suppression des utilisateurs déjà créés

Comme dit plus haut, il s'agit des utilisateurs concernés par la messagerie électronique dans l'ENT, à savoir les élèves.
Sous le répertoire de déploiement du portail :

/home/esco/traitement_eleves/scripts/taches_ant_supp.sh
./start_esco.sh

Insertion dans la feuille de style

Pour que le canal soit vu dans le navigateur, il faut alors modifier la feuille de style du portail, en ajoutant :

....
 
				<xsl:copy-of select="channel[@name='Login']"/>
<!-- Ajout du canal Imap 'simplifié' dans le bandeau du portail -->
				<xsl:copy-of select="channel[@name='CImap']"/>
<!-- Fin ajout -->
 
				<xsl:copy-of select="channel[@name='Header']"/>
 
			</div>
 
...
pages développeurs
pages "communauté ESCO"