Pages enfant
  • Guide d'installation (fr)

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Balise Wiki
{toc}

h1. Pré-requis

Afin d'effectuer l'installation de l'application ESCO-Grouper, certains logiciels/outils sont nécessaires :

* Maven 2.2.1
* Apache ant 1.8.0
* Tomcat {color:#ff0000}{*}5.5.27{*}{color}
* Un éditeur de texte (ex : Bloc Note)

L'installation de Maven, Tomcat et du projet doit se faire dans des répertoires dont le chemin ne contient pas le caractère espace. Par exemple :
|| CHEMIN || CORRECT OU INCORRECT ||
| C:/Program Files/Tomcat | Incorrect |
| C:/Tomcat | Correct |
La base de données Grouper 1.6.2/1.6.3 doit être installé et accessible.

h1. Restriction

Il n'est possible d'utiliser ESCOGrouper en mode portlet que dans un portail uPortal en version 2.6 et en utilisant https. Dans ce cas, il n'est pas possible d'avoir deux portlets ESCOGrouper dans le même portail à cause de la session.


h1. Installation de l'application

h2. Récupération des sources


Les sources sont disponibles sur : [https://sourcesup.cru.fr/frs/?group_id=824|https://sourcesup.cru.fr/frs/?group_id=824]



Le guide d'installation en format PDF est disponible à : [https://sourcesup.cru.fr/docman/?group_id=824|https://sourcesup.cru.fr/docman/?group_id=824]










Le package ESCO-DynamicGroups doit être compilé avec grouper-ws pour  déployer un hook grouper pour les groupes dynamiques, et  esco-subject-extension-1.2.jar doit être déployé dans le répertoire lib  de grouper-ws.

h2. Paramétrage et configuration

Aucune modification de configuration ou de paramétrage dans la base  de données DERBY n'est à faire entre le v2.5.00, la v2.6.00 et la v2.6.0007 de  l'application.

h2. Principe général d'installation

_{+}Pré-requis :+_ _Le serveur Tomcat version_ {color:#ff0000}{*}{_}5.5.27{_}{*}{color} _où sera déployée l'application doit être lancé au moment de l'exécution des tâches Ant._
* *Étape 1 :* récupération des sources

* *Étape 2* : modification des 	options de lancement de Tomcat pour spécifier l'emplacement des fichiers de la mémoire allouée, etc...
{code:TEXT}
-Xms256m \-Xmx512m \-XX:PermSize=64M \-XX:MaxPermSize=128M \-Xss2048k \-Xminf0.05 \-Xminf0.40 \-Xmaxf0.60
\-Djavax.net.ssl.trustStore=*\**emplacement du fichier*.cacerts si mode SSL**\*
{code}
+Remarque :+ les options de lancement concernant la langue,   l'encodage et le répertoire \--Dconf.dir ne sont plus nécessaires depuis   la version 2.4.00.
* *Étape 3 :* si l'installation est en mode portlet (uPortal 2.6 accédé en https), édition du fichier server.xml du serveur Tomcat pour ajout du « *emptySessionPath=true* » à toutes les balises <connector> :
{code:TEXT}
<Connector emptySessionPath="true" acceptCount="100" connectionTimeout="20000"
{code}
* *Étape 4* : Lancement de Tomcat

* *Étape 5* : Modification des 	fichiers de configuration&nbsp;:
** modification du fichier [ESCOGrouper/build.properties|#Guided%27installation%28fr%29-build.properties]
** modification du fichier [ESCOGrouper/properties/ESCOGrouper.properties|#Guided%27installation%28fr%29-ESCOGrouper.properties]
** modification du [paramétrage applicatif|#Guided%27installation%28fr%29-ParametrageApplicatif] (base de données DERBY)
** modification des [fichiers d'internationalisation|#Guided%27installation%28fr%29-Internationalisation] (libellé, aide contextuelle, exception)
** vérification des [stratégies|#Guided%27installation%28fr%29-Strategies]
** vérification des [profils|#Guided%27installation%28fr%29-Profils].  Ces profils peuvent être modifiés directement sur le serveur Tomcat  après déploiement. Par contre cela nécessite un redémarrage du serveur  pour prendre en compte les modifications.
** vérification du paramétrage du [serveur d'envoi de mail|#Guided%27installation%28fr%29-ServeurSMTP].

* *Étape 6* : Construction du 	projet par compilation maven via le script ant :
** Initialisation et compilation de l'application : se 	placer dans le répertoire /ESCO-Grouper et lancer la commande ;
{code:TEXT}
ant init
{code}
+Attention&nbsp;:+ le fait d'avoir BUILD SUCCESSFUL  en fin de script ANT ne signifie pas forcément que la compilation s'est  bien déroulée. Il faut vérifier qu'il n'y ait pas de BUILD FAILED dans  les tâches maven au dessus.
** Déploiement : se placer dans le répertoire /ESCO-Grouper et lancer la commande :
{code:TEXT}
ant deploy
{code}
* *Étape 7* : Modification des fichiers d'[aide en ligne|#Guided%27installation%28fr%29-AideEnLigne] si nécessaires.

* *Étape 8* : Pour le mode portlet (uPortal 2.6 accédé en https), il est nécessaire de copier les css dans les  thèmes du portail.

Le fichier à copier se trouve dans le répertoire ESCOGrouper/properties/css.

h2. Cas de la première installation

Dans le cas où l'application n'a jamais été installée et la base de données mémoire n'existe pas.

Se placer dans le répertoire /ESCO-Grouper et lancer les commandes&nbsp;:
{code:TEXT}
ant init
ant deploy
{code}
Quand Tomcat prend en compte le nouveau war, la base de données mémoire est créée avec le paramétrage fourni à l'étape 5.

Tomcat prend en compte le nouveau war&nbsp;de la façon suivante :
* En mode remote, prise en compte à chaud
* En mode local, redémarrage de Tomcat

h2. Cas d'une installation avec modification des propriétés autres que derby

Dans le cas où l'application est déjà installée et la base de données  mémoire existe déjà. Si l'on souhaite modifier les fichiers du  répertoire /properties autres que ceux de derby (les stratégies par  exemple).

Se placer dans le répertoire /ESCO-Grouper et lancer les commandes :
{code:TEXT}
ant init
ant deploy
{code}
Quand Tomcat prend en compte le nouveau war, la  base de données mémoire n'est pas modifiée par rapport à l'installation  précédente.

h2. Cas d'une installation avec modification des propriétés derby

Dans le cas où l'application est déjà installée et la base de données  mémoire existe déjà. Si l'on souhaite seulement modifier le paramétrage  applicatif (fichiers de propriétés derby).

Se placer dans le répertoire /ESCO-Grouper et lancer les commandes :a
{code:TEXT}
ant dbinit
ant dbdeploy
{code}
La seconde tâche copie les fichiers générés (sql +  label), supprime la base de données derby existante et alimente la base  avec le nouveau paramétrage.

Ceci est vrai dans le cas du déploiement en mode local. En mode remote, il faut se référer au cas suivant.

Afin que les fichiers d'internationalisation soient pris en compte, il faut redémarrer Tomcat.

h2. Cas d'une installation avec modification des properties (derby + autre)

Dans le cas où l'application est déjà installée et la base de données  mémoire existe déjà. Si l'on souhaite modifier à la fois le paramétrage  applicatif (fichiers de propriétés derby) et les autres paramétrages  (stratégie par exemple).

Se placer dans le répertoire /ESCO-Grouper et lancer les commandes :
{code:TEXT}
ant init
ant dbdeploy
ant deploy
{code}
La seconde tâche copie les fichiers générés (sql +  label), supprime la base de données derby existante et alimente la base  avec le nouveau paramétrage.

Afin que les fichiers d'internationalisation soient pris en compte, il faut redémarrer Tomcat.

h1. Les tâches ant


h2. ant clean

Cette tâche permet de lancer le nettoyage des différents projets afin  de pouvoir revenir à un état vierge avant toute nouvelle compilation.

h2. ant init

Cette tâche permet de lancer un dbinit, de copier dans le projet les fichiers générés et de compiler le projet.

h2. ant dbinit

Cette tâche permet de générer le fichier sql permettant d'alimenter  la base de données mémoire à partir des fichiers de paramétrage ainsi  que les fichiers d'internationalisation.

Cette tâche peut afficher des warning lors de son exécution. Ces  warnings correspondent à des clés dupliquées. Dans la majorité des cas,  cela est normal car une même clé est utilisée pour le même attribut sur  des pages différentes. Par exemple, l'attribut extension est utilisé  dans la page de propriétés d'un groupe et dans celle d'un dossier. Le  même libellé (extension.label) est utilisé. D'où le warning de la  duplication de clé mais qui est normal. Il faut être vigilant sur ces  duplications lors que l'on veut des libellés différents pour un même  attribut.

h2. ant deploy

Cette tâche permet de déployer le war sur Tomcat.
* En mode remote, cela «&nbsp;undeploy&nbsp;» l'application existe (si elle  porte le même nom de contexte) et déploie le nouveau war. Ce war est  pris directement en compte par Tomcat.
* En mode local, cela copie l'application dans le répertoire  paramétré. Il faut redémarrer Tomcat pour le nouveau war soit pris en  compte.

h2. ant dbdeploy

Cette tâche permet de copie les fichiers générés puis supprimer et  créer à nouveau la base de données à partir des fichiers généré par la  tâche dbinit ou init. Tomcat doit être démaré.

h2. ant undeploy

Cette tâche supprime le war et le répertoire de déploiement sous tomcat que ce soit en mode remote ou en mode local.

h1. Configurations techniques et applicatives

L'ensemble des fichiers de configuration à modifier se trouvent dans le répertoire /ESCO-Grouper/properties.

h2. {anchor:build.properties}\\ build.properties

Il s'agit du fichier d'environnement nécessaire à la compilation via la tâche ant.
|| Clef || Description || Exemple ||
| escogrouper.property.file | Nom du fichier de propriété à utiliser pour la compilation situé dans le répertoire /ESCO-Grouper/properties | ESCOGrouper.properties |
| javascript.compression | Compiler en utilisant le mode de compression des JavaScript | true |
| {color:#e51519}{*}MAVEN{*}{color} | | |
| maven.home | Répertoire où se situe Maven | /opt/apache-maven-2.2.0 |
| maven.offline | Compilation Maven en mode offline | false |
| maven.quiet | Niveau de commentaire des tâches Maven. Affiche seulement les erreurs si en mode true. | false |
| {color:#e51519}{*}TOMCAT{*}{color} | | |
| tomcat.deploy.mode | Détermine le mode de déploiement en local (local) ou à distance (remote). \\
A distance, le 	déploiement utilise le manager Tomcat. \\
En local, le déploiement s'effectue par copie. | local |
| tomcat.webapps.directory | Répertoire de déploiement dans le cas du mode local | /opt/tomcat/webapps |
| tomcat.host | Url d'accès au manager du Tomcat. Cette url est nécessaire pour le déploiement de l'application en mode remote. | [http://escogrouper:8090/manager|http://escogrouper:8090/manager] |
| tomcat.user | Login du compte à utiliser pour se connecter au manager (mode remote) | manager |
| tomcat.password | Mot de passe du compte à utiliser pour se connecter au manager  (mode remote) | manager |

h2. {anchor:ESCOGrouper.properties}\\ ESCOGrouper.properties

Il s'agit du fichier de propriétés de l'application ESCO-Grouper.
|| Clef || Description || Exemple ||
| {color:#e51519}{*}APPLICATION{*}{color} | | |
| application.version | Version de l'application (donné à titre indicatif) | 2.6.0 |
| application.versionMajorNumber | Version de l'application (donné à titre indicatif) | 2 |
| application.versionMinorNumber | Version mineure de l'application. Utilisé par application.xml pour afficher le numéro de version en bas de page. | 6 |
| application.versionUpdate | Version update de l'application. Utilisé par application.xml pour afficher le numéro de version en bas de page. | 0 |
| application.env | Environnement de l'application (donné à titre indicatif). Les valeurs possibles sont Test, Production, Développement, ... | test |
| application.type | Type de compilation. Les valeurs possibles sont servlet ou portlet. | servlet |
| application.portlet.name | Nom de la portlet. Ignorer en mode servlet. | ESCOGrouperPortlet |
| application.host | Hôte de l'application&nbsp;: adresse IP ou adresse DNS du serveur Tomcat | escogrouper.esco-portail.org |
| application.context | Contexte de l'application | ESCOGrouper |
| application.port | Port d'accès à l'application | 443 |
| {color:#e51519}{*}CAS{*}{color} | | |
| cas.mode | Mode d'utilisation de CAS (http, https) | https |
| cas.host | Hôte de CAS | auth.esco-portail.org |
| cas.port | Port d'accès à CAS | 443 |
| cas.uri | URI de CAS. Le / est nécessaire en début de chaîne. | / |
| cas.uri.login | URI du login de CAS. Le / est nécessaire en début de chaîne. | /login |
| cas.uri.logout | URI du logout de CAS. Le / est nécessaire en début de chaîne. | /logout |
| cas.uri.validate | URI du validate de CAS. Le / est nécessaire en début de chaîne. | /proxyValidate |
| cas.uri.proxyCallback | URI du callback de CAS. Le / est nécessaire en début de chaîne. | /casProxyCallback |
| {color:#e51519}{*}LDAP{*}{color} | | |
| ldap.host | Hôte du serveur LDAP | 172.31.142.71 |
| ldap.port | Port du serveur LDAP | 389 |
| ldap.login | Login du serveur LDAP \\
Utilisé dans le fichier grouper.client.properties, ce login représente  «&nbsp;kerberos principal used to connect to ldap&nbsp;». Cette clé n'est utilisée  que dans le cas de kerberos. Dans les autres cas elle est mise en  commentaire. | admin |
| ldap.password | Mot de passe du serveur LDAP \\
Utilisé dans le fichier grouper.client.properties, ce login représente  «&nbsp;password for shared secret authentication to ldap or you can put a  filename with an encrypted password&nbsp;». Cette clé n'est utilisée que dans  le cas de kerberos. Dans les autres cas elle est mise en commentaire. | passwd |
| ldap.dn | Le compte admin du LDAP | cn=grouper,dc=esco-portail,dc=org |
| ldap.dn.password | Mot de passe du compte admin du LDAP | passwd |
| ldap.basedc | Dc du serveur LDAP | dc=esco-portail,dc=org |
| ldap.baseuid | Branche qui contient les comptes utilisateur du serveur LDAP | ou=people,dc=esco-portail,dc=org |
| {color:#e51519}{*}BASE DE DONNÉES GROUPER{*}{color} | | |
| database.driver | Driver de la base de données | com.mysql.jdbc.Driver |
| database.username | Login de connexion à la base de données Grouper | esco |
| database.password | Mot de passe pour se connecter à la base de données Grouper | passwd |
| database.url | Url de la base de données Grouper | jdbc:mysql://172.31.142.71:3306/grouper?characterEncoding=UTF-8 |
| {color:#e51519}{*}BASE DE DONNÉES MÉMOIRE DERBY{*}{color} | | |
| derby.driver | Driver de la base de données | org.apache.derby.jdbc.ClientDriver |
| derby.port | Port d'écoute de la base de données | 1527 |
| derby.url | Url d'accès à la base de données. Sous linux, les des slashs (//opt) sont obligatoires. \\ | jdbc:derby://localhost:1527//opt/conf.dir/data/ESCODB;create=true; |
| derby.username | Utilisateur de la base de données | sa |
| derby.password | Mot de passe de l'utilisateur de la base | passwd |
| derby.requireAuthentication | Authentification requise ou non pour accéder à la base de données (true, false) | true |
| {color:#e51519}{*}GROUPER WS{*}{color} | | |
| grouperClient.webService.url | Url d'appel des web-services Grouper | [http://172.31.142.71:8080/grouper-ws/servicesRest/|http://172.31.142.71:8080/grouper-ws/servicesRest/] |
| grouperClient.webService.login | Login de connexion aux web-services | Apd00000 |
| grouperClient.webService.password | Mot de passe de connexion aux web-service | passwd |
| {color:#e51519}{*}LOG4J{*}{color} | | |
| log4j.level | Niveau de log dans l'ensemble de l'application. Les valeurs possibles sont DEBUG, INFO, WARN, ERROR, FATAL | DEBUG |
| log4j.appender.grouper_event.File | Fichier de log des événements Grouper | |
| log4j.appender.grouper_error.File | Fichier de log des erreurs Grouper | |
| log4j.appender.grouper_debug.File | Fichier de log du debug Grouper | |
| log4j.appender.grouper_gb.File | Fichier de log de Grouper | |
| {color:#e51519}{*}SMTP{*}{color} | | |
| smtp.host | Hôte du serveur SMTP | localhost |
| smtp.port | Port du serveur SMTP \\ | 25 |
| smtp.username | Login d'accès au serveur SMTP | |
| smtp.password | Mot de passe d'accès au serveur SMTP | |
| smtp.adress | Adresse mail du destinataire | ent@esco-portail.org |
| smtp.name | Nom du destinataire | Administrateurs ENT |
| smtp.adressFrom | Adresse émettrice des mails | devel@esco-portail.org |
| smtp.nameFrom | Nom émetteur des mails | ESCO-Portail |
| smtp.copyAdress | Adresse de copie des mails | julien.gribonvald@recia.fr |
| error.level | Niveau d'erreur pour envoyer les mails | ERROR |
| {color:#e51519}{*}GROUPES DYNAMIQUES{*}{color} | | |
| dynamic.group | Inclure le plugin des groupes dynamiques au projet (true/false) | true |
| dynamic.database.attribute.field.ldaprequest | Valeur définie dans la table grouper_fields et  la colonne name. Cette valeur est l'attribut où sera sauvegardée la  requête LDAP. | rule |
| dynamic.group.type | Valeur définie dans la table grouper_types et la colonne name. Elle définie le type dynamique. | dynamic |

h2. {anchor:ParametrageApplicatif}\\ Paramétrage applicatif (base de données DERBY)

Le paramétrage est un élément important de l'application, tous les  écrans y font appel pour décider si tels éléments doivent être affichés  ou non.

Cette brique technique se doit d'être le plus ouvert et le plus  simple possible. Ainsi l'utilisation d'une base de données mémoire est  recommandée dans ce type de configuration car elle est :
* Souple d'utilisation grâce à un accès distant ;
* Accessible par de multiples modules ;
* Modifiable à chaud.

Or des fichiers de configurations permettent d'alimenter simplement  cette base de données et de créer les fichiers d'internationalisation  correspondant.

Chaque fichier contient la manière de paramétrer les différentes pages => se référer aux fichiers fournis dans les sources.

Les fichiers sont référencés dans le fichier build.xml. En modifiant  build.xml, on peut modifier le nom et le nombre des fichiers de  paramétrage applicatif.

h3. MyParameters.properties

Ce fichier permet de renseigner des paramètres
* nécessaires à la génération de la base de données,
* communs à l'ensemble de l'application et qui sont nécessaires au bon fonctionnement de l'application.

_global.lang_ permet de définir les langues utilisées par  l'application et ainsi vérifier lors de la génération des fichiers  d'internationalisation que les libellés sont paramétrés dans l'ensemble  des langues définies.

_default.rule.regexp.\*_ définit l'expression régulière utilisée si aucune autre expression n'est définie pour la validation des champs.

h3. MySearch.properties

Ce fichier concerne le paramétrage des pages relatives aux recherches :
* Recherche de sujets :
** Personnes
** Groupes
** Personnes dans un groupe

* Recherche de dossiers

h3. MyStem.properties

Ce fichier concerne le paramétrage des pages relatives aux dossiers :
* Propriétés de dossier
** Attributs

* Création de dossier et Modification de dossier
** Attributs
** Modification de l'extension
** Privilèges

h3. MyGroup.properties

Ce fichier concerne le paramétrage des pages relatives aux groupes :
* Propriétés de groupe
** Attributs
** Membres
** Appartenances
** Privilèges

* Création de groupe et Modification de groupe
** Attributs
** Droits par défaut
** Type personnalisé
** Privilèges

h3. MyGroupDynamic.properties

Ce fichier concerne le paramétrage des pages relatives aux groupes dynamique :
* Onglet groupe dynamique
* Page Tester règle

h3. MyPerson.properties

Ce fichier concerne le paramétrage des pages relatives aux groupes :
* Propriétés de personne&nbsp;:
* Attributs
* Appartenances
* Privilèges
* Abonnements

h2. {anchor:Internationalisation}\\ Internationalisation


h3. Labels

Les fichiers contenant les libellés de l'application et qui ne sont  pas créés par la génération de la base de données se trouvent dans les  répertoires :
* /ESCO-Grouper/metier/esco-web/src/main/resources/properties/i18n/bundles/screen/
* /ESCO-Grouper/metier/esco-web/src/main/resources/properties/i18n/bundles/
* /ESCO-Grouper/metier/esco-module/dynamique-groupe/src/main/resources/properties/i18n/plugins/screen/

h3. Exceptions

Il est possible de différencier les messages d'erreurs selon les écrans. Liste des préfixes pour les exceptions des résumés :
* org.esco.grouperui.group.resume.&nbsp;: préfixe pour l'écran de 	résumé des propriétés de groupe.
* org.esco.grouperui.person.resume.&nbsp;: préfixe pour l'écran de 	résumé des propriétés de personne.
* org.esco.grouperui.stemmodification.resume.&nbsp;: préfixe pour 	l'écran de résumé d'administration d'un dossier.
* org.esco.grouperui.groupmodification.resume.&nbsp;: préfixe pour 	l'écran de résumé d'administration d'un groupe.

Exemple :

Par défaut lorsque l'exception _ESCOGroupNotSaveException_ est levée le message « Le groupe n'a pas été enregistré. » est affiché.

Si on souhaite avoir un message différent dans le résumé des  propriétés de groupe, il suffit de définir une nouvelle clé dans le  fichier Error_XX :org.esco.grouperui.group.resume.ESCOGroupNotSaveException=Mon nouveau message

h3. Aide contextuelle

Les libellés des aides contextuelles se trouvent dans les différents  fichiers d'internationalisation avec les clés se terminant par « \_TITLE  ».

Si la clé n'existe pas, l'aide contextuelle s'affichera avec "?????CLE?????".

Pour que l'aide contextuelle ne s'affiche pas, il suffit de retirer le libellé après la clé. Par exemple :STEM_CREATE_GROUP_TITLE=

h2. {anchor:Strategies}\\ Stratégies


h3. Recherche de personnes

Le fichier grouper-api-strategy.xml permet de définir quelle  stratégie de recherche de personnes est utilisée en fonction d'une  expression évaluée.<bean id="defaultStrategySubjectLocator">
<property name="evaluator" ref="evaluator" />
<property name="defaultSearchStrategies" >
<map>
<entry key=" evaluator.regexp('(esco:Etablissements:-( ([\^\_&#94;&#95;&#124;&#124;&#124;&#124;&#124;&#124;&#124;\||]\+)_(
\\
d{5,7}\\
w?))(:[\^:|^:]+)*)\|(esco:admin:.+)\|
(esco:Applications:.+)', path)" value-ref="UAIStrategySubjectSearch"></entry>
<entry key="evaluator.regexp('(.*)', term)" value-ref="defaulStrategySubjectSearch"></entry>
</map>
</property>
</bean>
Dans l'exemple ci-dessus, la stratégie "_UAIStrategySubjectSearch_" sera utilisée pour les groupes dont le path correspond à l'expression régulière indiquée.

Les variables disponibles pour l'expression sont:
* term : le terme de recherche qui peut contenir des caractères joker ;
* path : le chemin à partir duquel on effectue la recherche ;
* person : la personne effectuant la recherche.

h3. Recherche de groupes

Le fichier grouper-client-strategy.xml permet de définir quelle  stratégie de recherche de groupes est utilisée en fonction d'une  expression évaluée. Ce fichier se trouve dans le répertoire  /ESCO-Grouper/ext/grouper-client.fragment/src/main/ressources/spring.<bean id="defaultStrategyGroupLocator">
<property name="evaluator" ref="evaluator" />
<property name="defaultSearchStrategies" >
<map>
<entry key="evaluator.regexp('(.*)', term)" value-ref="defaulStrategyGroupSearch"></entry>
</map>
</property>
</bean>
Dans l'exemple ci-dessus, il n'existe qu'une stratégie par défaut.

Les variables disponibles pour l'expression sont :
* field : attribut sur lequel l'utilisateur effectue la recherche. Les valeurs possibles sont name, displayName et extension ;
* type : le type de la recherche (simple ou pour ajout). Les valeurs possibles sont SIMPLE et ADD ;
* path : le chemin à partir duquel on effectue la recherche ;
* term : le terme de recherche qui peut contenir des caractères joker ;
* subject : la personne effectuant la recherche.

h3. Condition par défaut des groupes dynamiques

Le fichier group-dynamic-strategy.xml permet de définir quelle  condition par défaut est affichée sur l'onglet Dynamique lors de la  création d'un groupe de type dynamique en fonction d'une expression  évaluée.<bean id="defaultStrategyRequestLocator">
<property name="evaluator" >
<bean />
</property>
<property name="strategies" >
<map>
<entry key="evaluator.regexp('esco:Etablissements:-( ([Guide d'installation (fr)^\_&#95;&#124;&#124;&#124;&#124;&#124;&#124;&#124;\||]\+)_(
\\
d{5,7}\\
w?))(:[Guide d'installation (fr)^:]\+)*', stem.getName())">
<bean />
</entry>
<entry key="evaluator.regexp('(.*)', stem.getName())">
<bean />
</entry>
</map>
</property>
</bean>
Dans l'exemple ci-dessus, la stratégie "_UAIStrategyRequestFactory_" est utilisée pour les dossiers dont le nom correspond à l'expression régulière indiquée.

Les variables disponibles pour l'expression sont :
* stem : le dossier dans lequel l'utilisateur créé le groupe ;
* person : la personne effectuant la création.

h2. {anchor:Profils}\\ Gestion des profils

Afin de pouvoir paramétrer l'application en fonction d'un utilisateur, il est possible de gérer différents profils.

Le profil peut être récupéré de deux manières différentes :
* En passant dans l'url le paramètre profile=*nomDuProfil\* si l'application est en mode servlet
* En récupérant le profil de la personne connectée sur le Portail si l'application est en mode portlet.

Le mécanisme des profils est décrit dans le document intitulé  «&nbsp;ESCO-Grouper - Manuel de développement v1.00.pdf&nbsp;». Le point à retenir  est qu'il existe des fichiers \*Profile.xml qu'il est nécessaire de  modifier pour autoriser ou non des fonctionnalités.

h3. Ajout d'un profil

Afin d'ajouter un profil, il suffit de rajouter un fichier XML dans  le répertoire des profils. Il sera chargé automatiquement au lancement  de l'application.

h3. Contenu d'un fichier de profil

Le contenu d'un fichier de profil correspond à ceci :<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/aop [http://www.springframework.org/schema/aop/spring-aop.xsd]
[http://www.springframework.org/schema/beans] [http://www.springframework.org/schema/beans/spring-beans-2.0.xsd]
[http://www.springframework.org/schema/context] [http://www.springframework.org/schema/context/spring-context-3.0.xsd]">

<bean id="testProfile">
<property name="name" value="testProfile"></property>
<property name="functions">
<map>
<\!\--entry key="-{*}{-}uneClef{-}{*}-" value="-{*}{-}unBooléen{-}{*}-"></entry-\->
<entry key="org.esco.grouperui.web.stem.properties" value="true"></entry>
</map>
</property>
</bean>

<bean>
<description>Add the profile to the list of profiles or modify if exist.</description>
<property name="profiles">
<list>
<ref bean="testProfile"></ref>
</list>
</property>
</bean>
</beans>
Ce fichier, par exemple, va créer un profil nommé « testProfile » qui  va permettre aux utilisateurs ayant ce profil d'accéder aux propriétés  de dossier dans l'application ESCO-Grouper.

Vous trouverez en annexe §7.4 un tableau récapitulatif des clefs possibles.

h2. {anchor:ServeurSMTP}\\ Serveur SMTP

Le serveur SMTP permet d'envoyer des mails dans le cas d'une erreur technique intervenu dans l'application.

Ce fichier smtp.xml ne doit être modifié que dans le cas où il existe  plusieurs serveurs SMTP dédiés à l'application. Si un seul serveur est  utilisé, la configuration s'effectue dans le fichier  ESCOGrouper.properties.

h2. {anchor:AideEnLigne}\\ Aide en ligne

Le fichier Help_XX.properties, qui se trouve dans le répertoire  ESCOGrouper/metier/esco-web/src/main/resources/properties/i18n/bundles/screen,  effectue le mapping entre les codes écran et l'emplacement des fichiers  HTML contenant les aides.

Par exemple pour l'aide en ligne de la zone de navigation :ONLINE_HELP_NAVIGUATION_AREA_URL=/ESCOGrouper/stylesheets/onlineHelp/en/navigationArea.html
Les fichiers HTML peuvent être modifies à chaud sur le serveur Tomcat.

+Remarque :+ les fichiers pouvant se trouver n'importe où sur le  serveur Tomcat, il faut faire attention au chemin indiqué, surtout si  le contexte de déploiement est différent.

h2. Paramétrage du bandeau

Pour afficher le bandeau du haut, il faut mettre à true la variable  displaying de Banner dans le fichier  /ESCO-Grouper/metier/esco-web/src/web/webapp/media/js/esco/option.js.

Pour ne pas l'afficher, il faut mettre la variable à false./*\*
* Class to show banner or not
\*/
var Banner  = {
displaying : true,
isDisplayed : function(){
		return this.displaying;
	}
};

h1. Annexes


h2. Environnements

Les fichiers de configurations modifiés pour installer l'application sont les suivants :
* \ESCOGrouper\metier\esco-web\src\main\filters\filters.properties
* \ESCOGrouper\metier\esco-web\src\main\resources\properties\config.properties
* \ESCOGrouper\metier\esco-web\src\main\resources\properties\env.properties
* \ESCOGrouper\metier\esco-web\src\main\resources\properties\applicationContext.xml

h3. filter.properties

Ce fichier est composé de filtres pour créer les fichiers de  configuration de Grouper (grouper-client.properties, sources.xml,  grouper.hibernate.properties et log4j.properties). Au moment de la  compilation du projet via maven ces variables seront remplacées dans les  fichiers adéquats.

h4. Variables d'environnement requises dans grouper.client.properties

|| Clef || Description || Exemple ||
| grouperClient.ldap.url | Url du LDAP pour Grouper client | ldap://172.31.142.71/dc=esco-portail,dc=org |
| grouperClient.ldap.login | Login du compte admin du serveur LDAP | admin |
| grouperClient.ldap.password | Mot de passe du compte admin du serveur LDAP | passwd |
| grouperClient.webService.url | Url d'appel des web-services Grouper | [http://localhost:8080/grouper-ws/servicesRest/|http://localhost:8080/grouper-ws/servicesRest/]\\ |
| grouperClient.webService.login | Login de connexion aux web-services | grouper |
| grouperClient.webService.password | Mot de passe de connexion aux web-service | passwd |

h4. Variables d'environnement requises dans  sources.xml

|| Clef || Description || Exemple ||
| PROVIDER_URL | Url du serveur LDAP | ldap://172.31.142.71:389 |
| SECURITY_PRINCIPAL | Dn du serveur LDAP | cn=admin,dc=esco-portail,dc=org |
| SECURITY_CREDENTIALS | Login du compte admin du serveur LDAP | admin |
| base | Base du serveur LDAP | ou=people,dc=esco-portail,dc=org |

h4. Variables d'environnement requises dans grouper.hibernate.properties

|| Clef || Description || Exemple ||
| hibernate_driver_class | Driver de la base de données Grouper | com.mysql.jdbc.Driver |
| hibernate_username | Login de connexion à la base de données Grouper | grouper |
| hibernate_password | Mot de passe pour se connecter à la base de données Grouper | passwd |
| hibernate_url | Url de la base de données Grouper | jdbc:mysql://escogrouper:3306/grouper?characterEncoding=UTF-8 |

h4. Variables d'environnement requises dans log4j.properties

|| Clef || Description ||
| log4j.appender.grouper_event.File | Fichier de log des événements Grouper |
| log4j.appender.grouper_error.File | Fichier de log des erreurs Grouper |
| log4j.appender.grouper_debug.File | Fichier de log du debug Grouper |

h3. config.properties

Fichier de configuration d'ESCOGrouper lui-même. Il permet de  configurer les variables d'environnement nécessaires à l'utilisation de  CAS et définir les chemins relatifs d'accès aux médias.
|| Clef || Description || Exemple ||
| mediaPath.portlet | Chemin relatif d'accès aux médias en mode Portlet | /ESCOGrouper/media |
| mediaPath.servlet | Chemin relatif d'accès aux médias en mode Servlet | ../media |
| cas.url.login | Url de connexion de CAS | [https://localhost:8443/cas/login|https://localhost:8443/cas/login] |
| cas.url.logout | Url de déconnexion de CAS | [https://localhost:8443/cas/logout|https://localhost:8443/cas/logout] |
| cas.url.validator | Url de validation CAS | [https://localhost:8443/cas|https://localhost:8443/cas] |
| app.spring.ckeck | Url de vérification de la validité de session | [https://localhost:8443/ESCOGrouper/j_spring_cas_security_check|https://localhost:8443/ESCOGrouper/j_spring_cas_security_check] |
| cas.service | Url du service cas | [https://localhost:8443/cas|https://localhost:8443/cas] |
| casValidateUrl | Url du service de validation par proxy | [https://localhost:8443/cas/proxyValidate|https://localhost:8443/cas/proxyValidate] |
| proxyCallbackUrl | Url du callback service de validation par proxy | [https://localhost:8443/ESCOGrouper/casProxyCallback|https://localhost:8443/ESCOGrouper/casProxyCallback] |
| ldap.url | Url du serveur LDAP | ldap://0.0.0.0:389/ |
| ldap.dn | Dn du serveur LDAP | cn=admin,dc=esco-portail,dc=org |
| ldap.password | Login du compte admin du serveur LDAP | admin |
| ldap.basedc | Dc du serveur LDAP | dc=esco-portail,dc=org |
| ldap.baseuid | Id de la base LDAP | ou=people,dc=esco-portail,dc=org |
| ldap.basehasMember | Base où se trouve l'information hasMember dans le LDAP | ou=groups,dc=esco-portail,dc=org |

h3. env.properties

Fichier de configuration de la base de paramétrage. Il permet de configurer la connexion à la base de données mémoire Derby.
|| Clef || Description || Exemple ||
| environnement.type | Type de l'environnement | Dev |
| version | Version de l'application | 2.2.00 |
| parameter.db.classname | Driver de la base de données | org.apache.derby.jdbc.ClientDriver |
| parameter.db.port | Port d'écoute de la base de données | 1527 |
| parameter.db.host | Hôte de la base de données | 0.0.0.0.0 |
| parameter.db.url | Url de la base de données | jdbc:derby://localhost:1527/opt/tomcat/esco/data/ESCODB;create=true; |
| parameter.db.username | Utilisateur de la base de données | sa |
| parameter.db.password | Mot de passe de l'utilisateur de la base de données | manager |

h3. applicationContext.xml

Fichier principal de définition des beans spring. Il permet de  définir le type d'authentification de l'application (par formulaire  inclus avec des utilisateurs spécifiques ou CAS). Les utilisateurs  utilisés pour le mode formulaire sont spécifiés dans le fichier  auth-form.xml.

h2. Groupes dynamiques

Le fichier dynConfig.properties du projet dynamique-groupe doit être  modifié pour prendre en compte les groupes dynamiques. Il se trouve dans  le répertoire  /ESCOGrouper/metier/esco-module/dynamique-groupe/src/main/resources\properties.
|| Clef || Description || Exemple ||
| dynamic.key.attribute.ldaprequest | Mette la valeur définie dans la table  grouper_fields et la colonne name. Cette valeur est l'attribut où sera  sauvegardée la requête de constitution des groupes dynamiques. | rule |
| dynamic.value | Mettre la valeur définie dans la table grouper_types et la colonne name. Cette valeur définit le type dynamique. | dynamic |
| tab.regpresent | Remplacer la valeur « dynamique » par celle saisie précédemment dans la clé dynamic.value. | |
| tab.group.regpresent | Remplacer la valeur « dynamique » par celle saisie précédemment dans la clé dynamic.value. | |

h2. Exemple de fichier sources.xml de grouper-ws

Voici un exemple de sources.xml. Ce fichier doit contenir les  attributs LDAP à afficher dans l'application ESCO-Grouper. Il se trouve  dans le répertoire /WEB-INF/classes/ de grouper-ws.<?xml version="1.0" encoding="utf-8"?>

<\!-\-
Grouper's subject resolver configuration
$Id: sources.example.xml,v 1.7 2008/11/22 21:39:14 mchyzer Exp $
\-->

<sources>

<\!-\- Group Subject Resolver \-->
<\!-\-
NOTE: It is recommended that you **not*\* change the default
values for this source adapter.
\-->
<source adapterClass="edu.internet2.middleware.grouper.GrouperSourceAdapter">
<id>g:gsa</id>
<name>Grouper: Group Source Adapter</name>
<type>group</type>
</source>

<source adapterClass="edu.internet2.middleware.subject.provider.ESCOJNDISourceAdapter">
<id>esco:ldap</id>
<name>JNDI Source Adapter</name>
<type>person</type>
<init-param>
<param-name>INITIAL_CONTEXT_FACTORY</param-name>
<param-value>com.sun.jndi.ldap.LdapCtxFactory</param-value>
</init-param>

<init-param>
<param-name>PROVIDER_URL</param-name>
<param-value>ldap://172.31.142.71:389</param-value>
</init-param>

<init-param>
<param-name>SECURITY_AUTHENTICATION</param-name>
<param-value>simple</param-value>
</init-param>

<init-param>
<param-name>SECURITY_PRINCIPAL</param-name>
<param-value>cn=admin,dc=esco-portail,dc=org</param-value>
</init-param>

<init-param>
<param-name>SECURITY_CREDENTIALS</param-name>
<param-value>admin</param-value>
</init-param>

<init-param>
<param-name>SubjectID_AttributeType</param-name>
<param-value>uid</param-value>
</init-param>

<init-param>
<param-name>Name_AttributeType</param-name>
<param-value>ENTPersonLogin</param-value>
</init-param>

<init-param>
<param-name>Description_AttributeType</param-name>
<param-value>displayName</param-value>
</init-param>

<search>
<searchType>searchSubject</searchType>
<param>
<param-name>filter</param-name>
<param-value>(& (uid=%TERM%)(objectclass=inetOrgPerson))</param-value>
</param>
<param>
<param-name>scope</param-name>
<param-value>ONELEVEL_SCOPE</param-value>
</param>
<param>
<param-name>base</param-name>
<param-value>ou=people,dc=esco-portail,dc=org</param-value>
</param>
</search>

<search>
<searchType>searchSubjectByIdentifier</searchType>
<param>
<param-name>filter</param-name>
<param-value>(uid=%TERM%)</param-value>
</param>
<param>
<param-name>scope</param-name>
<param-value>ONELEVEL_SCOPE</param-value>
</param>
<param>
<param-name>base</param-name>
<param-value>ou=people,dc=esco-portail,dc=org</param-value>
</param>
</search>

<search>
<searchType>search</searchType>
<param>
<param-name>scope-attribut</param-name>
<param-value>ESCOUAI</param-value>
</param>
<param>
<param-name>filter</param-name>
<param-value>(\|(cn=%TERM%)(sn=%TERM%)(uid=%TERM%))</param-value>
</param>
<param>
<param-name>scope</param-name>
<param-value>ONELEVEL_SCOPE</param-value>
</param>
<param>
<param-name>base</param-name>
<param-value>ou=people,dc=esco-portail,dc=org</param-value>
</param>
</search>

<attribute>displayName</attribute>
<attribute>ENTPersonLogin</attribute>
<attribute>ENTTitle</attribute>
<attribute>ENTPersonFonctions</attribute>
<attribute>uid</attribute>
<attribute>cn</attribute>
<attribute>sn</attribute>
<attribute>givenName</attribute>
<attribute>ESCOUAI</attribute>
<attribute>mail</attribute>
<attribute>ESCOUAIRattachement</attribute>
<attribute>objectClass</attribute>

</source>
</sources>

h2. Tableau récapitulatif des clefs possibles pour la gestion de profils

|| Zone de navigation || || ||
| org.esco.grouperui.web.areaNavigation | Affichage ou non de la zone de navigation |
|| Menu contextuel || ||
| org.esco.grouperui.web.menu.createGroup | Menu contextuel permettant la création de groupe |
| org.esco.grouperui.web.menu.createStem | Menu contextuel permettant la création de dossier |
| org.esco.grouperui.web.menu.search | Menu contextuel permettant la recherche simple (Dépend de la zone de navigation) |
| org.esco.grouperui.web.menu.administrate | Menu contextuel permettant d'administrer un groupe ou dossier |
| org.esco.grouperui.web.menu.properties | Menu contextuel permettant d'accéder aux propriétés d'un groupe ou dossier |
| org.esco.grouperui.web.menu.optin | Menu contextuel permettant de s'abonner à un groupe |
| org.esco.grouperui.web.menu.optout | Menu contextuel permettant de se désabonner d'un groupe |
| org.esco.grouperui.web.menu.delete | Menu contextuel permettant de supprimer un groupe ou un dossier |
|| Propriété de personnes || ||
| org.esco.grouperui.web.person.properties | Permettre d'accéder ou non aux propriétés de l'individu |
| org.esco.grouperui.web.person.properties.tab.memberships | Afficher ou non l'onglet d'appartenance dans l'écran propriété de personne |
| org.esco.grouperui.web.person.properties.tab.privileges | Afficher ou non l'onglet de privilèges dans l'écran propriété de personne |
| org.esco.grouperui.web.person.properties.tab.subscriptions | Afficher ou non l'onglet des abonnements dans l'écran propriété de personne |
|| Propriété de groupes || ||
| org.esco.grouperui.web.group.properties | Permettre d'accéder ou non aux propriétés d'un groupe |
| org.esco.grouperui.web.group.properties.tab.members | Afficher ou non l'onglet des membres dans l'écran propriété de groupe |
| org.esco.grouperui.web.group.properties.tab.memberships | Afficher ou non l'onglet des appartenances dans l'écran propriété de groupe |
| org.esco.grouperui.web.group.properties.tab.privileges | Afficher ou non l'onglet des privilèges dans l'écran propriété de groupe |
|| Modification de groupes || ||
| org.esco.grouperui.web.group.modification | Permettre d'accéder ou non à la modification d'un groupe |
|| Propriété de dossiers || ||
| org.esco.grouperui.web.stem.properties | Permettre d'accéder ou non aux propriétés d'un dossier |
|| Modification de dossiers || ||
| org.esco.grouperui.web.stem.modification | Permettre d'accéder ou non à la modification d'un dossier |
| org.esco.grouperui.web.stem.modification.tab.privileges | Afficher ou non l'onglet de privilèges dans l'écran privilège de la modification de dossier |
[id=824|https://sourcesup.cru.fr/frs/?group_id=824]














Le guide d'installation en format PDF est disponible à : [https://sourcesup.cru.fr/docman/?group_id=824]
















Le package ESCO-DynamicGroups doit être compilé avec grouper-ws pour déployer un hook grouper pour les groupes dynamiques, et esco-subject-extension-1.2.jar doit être déployé dans le répertoire lib de grouper-ws.

h2. Paramétrage et configuration

Aucune modification de configuration ou de paramétrage dans la base de données DERBY n'est à faire entre le v2.5.00 et la v2.6.00 de l'application.

h2. Principe général d'installation

_{+}Pré-requis :+_ _Le serveur Tomcat version_ {color:#ff0000}{*}{_}5.5.27{_}{*}{color} _où sera déployée l'application doit être lancé au moment de l'exécution des tâches Ant._
* *Étape 1 :* récupération des sources

* *Étape 2* : modification des 	options de lancement de Tomcat pour spécifier l'emplacement des fichiers de la mémoire allouée, etc...

{code}-Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128M -Xss2048k -Xminf0.05 -Xminf0.40 -Xmaxf0.60
 -Djavax.net.ssl.trustStore=***emplacement du fichier*.cacerts si mode SSL***{code}

+Remarque&nbsp;:+ les options de lancement concernant la langue,  l'encodage et le répertoire \--Dconf.dir ne sont plus nécessaires depuis  la version 2.4.00.
* *Étape 3 :* si l'installation est en mode portlet, édition du fichier server.xml du serveur Tomcat pour ajout du « *emptySessionPath=true* » à toutes les balises <connector> :

{code:XML}<Connector emptySessionPath="true" acceptCount="100" connectionTimeout="20000"{code}

* *Étape 4* : Lancement de Tomcat

* *Étape 5* : Modification des 	fichiers de configuration&nbsp;:
** modification du fichier [ESCOGrouper/build.properties|Guide d'installation (fr)#build.properties]
** modification du fichier [ESCOGrouper/properties/ESCOGrouper.properties|Guide d'installation (fr)#ESCOGrouper.properties]
** modification du [paramétrage applicatif|Guide d'installation (fr)#ParametrageApplicatif] (base de données DERBY)
** modification des [fichiers d'internationalisation|Guide d'installation (fr)#Internationalisation] (libellé, aide contextuelle, exception)
** vérification des [stratégies|Guide d'installation (fr)#Strategies]
** vérification des [profils|Guide d'installation (fr)#Profils]. Ces profils peuvent être modifiés directement sur le serveur Tomcat après déploiement. Par contre cela nécessite un redémarrage du serveur pour prendre en compte les modifications.
** vérification du paramétrage du [serveur d'envoi de mail|Guide d'installation (fr)#ServeurSMTP].

* *Étape 6* : Construction du 	projet par compilation maven via le script ant :
** Initialisation et compilation de l'application : se 	placer dans le répertoire /ESCO-Grouper et lancer la commande ;

{code}ant init{code}
+Attention&nbsp;:+ le fait d'avoir BUILD SUCCESSFUL en fin de script ANT ne signifie pas forcément que la compilation s'est bien déroulée. Il faut vérifier qu'il n'y ait pas de BUILD FAILED dans les tâches maven au dessus.
** Déploiement : se placer dans le répertoire /ESCO-Grouper et lancer la commande :

{code}ant deploy{code}

* *Étape 7* : Modification des fichiers d'[aide en ligne|Guide d'installation (fr)#AideEnLigne] si nécessaires.

* *Étape 8* : Pour le mode portlet, il est nécessaire de copier les css dans les  thèmes du portail.

Le fichier à copier se trouve dans le répertoire ESCOGrouper/properties/css.

h2. Cas de la première installation

Dans le cas où l'application n'a jamais été installée et la base de données mémoire n'existe pas.

Se placer dans le répertoire /ESCO-Grouper et lancer les commandes&nbsp;:
{code}ant init
ant deploy{code}
Quand Tomcat prend en compte le nouveau war, la base de données mémoire est créée avec le paramétrage fourni à l'étape 5.

Tomcat prend en compte le nouveau war&nbsp;de la façon suivante :
* En mode remote, prise en compte à chaud
* En mode local, redémarrage de Tomcat

h2. Cas d'une installation avec modification des propriétés autres que derby

Dans le cas où l'application est déjà installée et la base de données mémoire existe déjà. Si l'on souhaite modifier les fichiers du répertoire /properties autres que ceux de derby (les stratégies par exemple).

Se placer dans le répertoire /ESCO-Grouper et lancer les commandes :
{code}ant init
ant deploy{code}
Quand Tomcat prend en compte le nouveau war, la base de données mémoire n'est pas modifiée par rapport à l'installation précédente.

h2. Cas d'une installation avec modification des propriétés derby

Dans le cas où l'application est déjà installée et la base de données mémoire existe déjà. Si l'on souhaite seulement modifier le paramétrage applicatif (fichiers de propriétés derby).

Se placer dans le répertoire /ESCO-Grouper et lancer les commandes :
{code}ant dbinit
ant dbdeploy{code}
La seconde tâche copie les fichiers générés (sql + label), supprime la base de données derby existante et alimente la base avec le nouveau paramétrage.

Ceci est vrai dans le cas du déploiement en mode local. En mode remote, il faut se référer au cas suivant.

Afin que les fichiers d'internationalisation soient pris en compte, il faut redémarrer Tomcat.

h2. Cas d'une installation avec modification des properties (derby + autre)

Dans le cas où l'application est déjà installée et la base de données mémoire existe déjà. Si l'on souhaite modifier à la fois le paramétrage applicatif (fichiers de propriétés derby) et les autres paramétrages (stratégie par exemple).

Se placer dans le répertoire /ESCO-Grouper et lancer les commandes :
{code}ant init
ant dbdeploy
ant deploy{code}
La seconde tâche copie les fichiers générés (sql + label), supprime la base de données derby existante et alimente la base avec le nouveau paramétrage.

Afin que les fichiers d'internationalisation soient pris en compte, il faut redémarrer Tomcat.

h1. Les tâches ant

h2. ant clean

Cette tâche permet de lancer le nettoyage des différents projets afin de pouvoir revenir à un état vierge avant toute nouvelle compilation.

h2. ant init

Cette tâche permet de lancer un dbinit, de copier dans le projet les fichiers générés et de compiler le projet.

h2. ant dbinit

Cette tâche permet de générer le fichier sql permettant d'alimenter la base de données mémoire à partir des fichiers de paramétrage ainsi que les fichiers d'internationalisation.

Cette tâche peut afficher des warning lors de son exécution. Ces warnings correspondent à des clés dupliquées. Dans la majorité des cas, cela est normal car une même clé est utilisée pour le même attribut sur des pages différentes. Par exemple, l'attribut extension est utilisé dans la page de propriétés d'un groupe et dans celle d'un dossier. Le même libellé (extension.label) est utilisé. D'où le warning de la duplication de clé mais qui est normal. Il faut être vigilant sur ces duplications lors que l'on veut des libellés différents pour un même attribut.

h2. ant deploy

Cette tâche permet de déployer le war sur Tomcat.
* En mode remote, cela «&nbsp;undeploy&nbsp;» l'application existe (si elle porte le même nom de contexte) et déploie le nouveau war. Ce war est pris directement en compte par Tomcat.
* En mode local, cela copie l'application dans le répertoire paramétré. Il faut redémarrer Tomcat pour le nouveau war soit pris en compte.

h2. ant dbdeploy

Cette tâche permet de copie les fichiers générés puis supprimer et créer à nouveau la base de données à partir des fichiers généré par la tâche dbinit ou init. Tomcat doit être démaré.

h2. ant undeploy

Cette tâche supprime le war et le répertoire de déploiement sous tomcat que ce soit en mode remote ou en mode local.

h1. Configurations techniques et applicatives

L'ensemble des fichiers de configuration à modifier se trouvent dans le répertoire /ESCO-Grouper/properties.

h2. {anchor:build.properties}build.properties

Il s'agit du fichier d'environnement nécessaire à la compilation via la tâche ant.
|| Clef || Description || Exemple ||
| escogrouper.property.file | Nom du fichier de propriété à utiliser pour la compilation situé dans le répertoire /ESCO-Grouper/properties | ESCOGrouper.properties |
| javascript.compression | Compiler en utilisant le mode de compression des JavaScript | true |
| {color:#e51519}{*}MAVEN{*}{color} | | |
| maven.home | Répertoire où se situe Maven | /opt/apache-maven-2.2.0 |
| maven.offline | Compilation Maven en mode offline | false |
| maven.quiet | Niveau de commentaire des tâches Maven. Affiche seulement les erreurs si en mode true. | false |
| {color:#e51519}{*}TOMCAT{*}{color} | | |
| tomcat.deploy.mode | Détermine le mode de déploiement en local (local) ou à distance (remote). \\
A distance, le 	déploiement utilise le manager Tomcat. \\
En local, le déploiement s'effectue par copie. | local |
| tomcat.webapps.directory | Répertoire de déploiement dans le cas du mode local | /opt/tomcat/webapps |
| tomcat.host | Url d'accès au manager du Tomcat. Cette url est nécessaire pour le déploiement de l'application en mode remote. | [http://escogrouper:8090/manager] |
| tomcat.user | Login du compte à utiliser pour se connecter au manager (mode remote) | manager |
| tomcat.password | Mot de passe du compte à utiliser pour se connecter au manager  (mode remote) | manager |


h2. {anchor:ESCOGrouper.properties}ESCOGrouper.properties

Il s'agit du fichier de propriétés de l'application ESCO-Grouper.
|| Clef || Description || Exemple ||
| {color:#e51519}{*}APPLICATION{*}{color} | | |
| application.version | Version de l'application (donné à titre indicatif) | 2.6.0 |
| application.versionMajorNumber | Version de l'application (donné à titre indicatif) | 2 |
| application.versionMinorNumber | Version mineure de l'application. Utilisé par application.xml pour afficher le numéro de version en bas de page. | 6 |
| application.versionUpdate | Version update de l'application. Utilisé par application.xml pour afficher le numéro de version en bas de page. | 0 |
| application.env | Environnement de l'application (donné à titre indicatif). Les valeurs possibles sont Test, Production, Développement, ... | test |
| application.type | Type de compilation. Les valeurs possibles sont servlet ou portlet. | servlet |
| application.portlet.name | Nom de la portlet. Ignorer en mode servlet. | ESCOGrouperPortlet |
| application.host | Hôte de l'application&nbsp;: adresse IP ou adresse DNS du serveur Tomcat | escogrouper.esco-portail.org |
| application.context | Contexte de l'application | ESCOGrouper |
| application.port | Port d'accès à l'application | 443 |
| {color:#e51519}{*}CAS{*}{color} | | |
| cas.mode | Mode d'utilisation de CAS (http, https) | https |
| cas.host | Hôte de CAS | auth.esco-portail.org |
| cas.port | Port d'accès à CAS | 443 |
| cas.uri | URI de CAS. Le / est nécessaire en début de chaîne. | / |
| cas.uri.login | URI du login de CAS. Le / est nécessaire en début de chaîne. | /login |
| cas.uri.logout | URI du logout de CAS. Le / est nécessaire en début de chaîne. | /logout |
| cas.uri.validate | URI du validate de CAS. Le / est nécessaire en début de chaîne. | /proxyValidate |
| cas.uri.proxyCallback | URI du callback de CAS. Le / est nécessaire en début de chaîne. | /casProxyCallback |
| {color:#e51519}{*}LDAP{*}{color} | | |
| ldap.host | Hôte du serveur LDAP | 172.31.142.71 |
| ldap.port | Port du serveur LDAP | 389 |
| ldap.login | Login du serveur LDAP \\
Utilisé dans le fichier grouper.client.properties, ce login représente «&nbsp;kerberos principal used to connect to ldap&nbsp;». Cette clé n'est utilisée que dans le cas de kerberos. Dans les autres cas elle est mise en commentaire. | admin |
| ldap.password | Mot de passe du serveur LDAP \\
Utilisé dans le fichier grouper.client.properties, ce login représente «&nbsp;password for shared secret authentication to ldap or you can put a filename with an encrypted password&nbsp;». Cette clé n'est utilisée que dans le cas de kerberos. Dans les autres cas elle est mise en commentaire. | passwd |
| ldap.dn | Le compte admin du LDAP | cn=grouper,dc=esco-portail,dc=org |
| ldap.dn.password | Mot de passe du compte admin du LDAP | passwd |
| ldap.basedc | Dc du serveur LDAP | dc=esco-portail,dc=org |
| ldap.baseuid | Branche qui contient les comptes utilisateur du serveur LDAP | ou=people,dc=esco-portail,dc=org |
| {color:#e51519}{*}BASE DE DONNÉES GROUPER{*}{color} | | |
| database.driver | Driver de la base de données | com.mysql.jdbc.Driver |
| database.username | Login de connexion à la base de données Grouper | esco |
| database.password | Mot de passe pour se connecter à la base de données Grouper | passwd |
| database.url | Url de la base de données Grouper | jdbc:mysql://172.31.142.71:3306/grouper?characterEncoding=UTF-8 |
| {color:#e51519}{*}BASE DE DONNÉES MÉMOIRE DERBY{*}{color} | | |
| derby.driver | Driver de la base de données | org.apache.derby.jdbc.ClientDriver |
| derby.port | Port d'écoute de la base de données | 1527 |
| derby.url | Url d'accès à la base de données. Sous linux, les des slashs (//opt) sont obligatoires. \\ | jdbc:derby://localhost:1527//opt/conf.dir/data/ESCODB;create=true; |
| derby.username | Utilisateur de la base de données | sa |
| derby.password | Mot de passe de l'utilisateur de la base | passwd |
| derby.requireAuthentication | Authentification requise ou non pour accéder à la base de données (true, false) | true |
| {color:#e51519}{*}GROUPER WS{*}{color} | | |
| grouperClient.webService.url | Url d'appel des web-services Grouper | [http://172.31.142.71:8080/grouper-ws/servicesRest/] |
| grouperClient.webService.login | Login de connexion aux web-services | Apd00000 |
| grouperClient.webService.password | Mot de passe de connexion aux web-service | passwd |
| {color:#e51519}{*}LOG4J{*}{color} | | |
| log4j.level | Niveau de log dans l'ensemble de l'application. Les valeurs possibles sont DEBUG, INFO, WARN, ERROR, FATAL | DEBUG |
| log4j.appender.grouper_event.File | Fichier de log des événements Grouper | |
| log4j.appender.grouper_error.File | Fichier de log des erreurs Grouper | |
| log4j.appender.grouper_debug.File | Fichier de log du debug Grouper | |
| log4j.appender.grouper_gb.File | Fichier de log de Grouper | |
| {color:#e51519}{*}SMTP{*}{color} | | |
| smtp.host | Hôte du serveur SMTP | localhost |
| smtp.port | Port du serveur SMTP \\ | 25 |
| smtp.username | Login d'accès au serveur SMTP | |
| smtp.password | Mot de passe d'accès au serveur SMTP | |
| smtp.adress | Adresse mail du destinataire | ent@esco-portail.org |
| smtp.name | Nom du destinataire | Administrateurs ENT |
| smtp.adressFrom | Adresse émettrice des mails | devel@esco-portail.org |
| smtp.nameFrom | Nom émetteur des mails | ESCO-Portail |
| smtp.copyAdress | Adresse de copie des mails | julien.gribonvald@recia.fr |
| error.level | Niveau d'erreur pour envoyer les mails | ERROR |
| {color:#e51519}{*}GROUPES DYNAMIQUES{*}{color} | | |
| dynamic.group | Inclure le plugin des groupes dynamiques au projet (true/false) | true |
| dynamic.database.attribute.field.ldaprequest | Valeur définie dans la table grouper_fields et la colonne name. Cette valeur est l'attribut où sera sauvegardée la requête LDAP. | rule |
| dynamic.group.type | Valeur définie dans la table grouper_types et la colonne name. Elle définie le type dynamique. | dynamic |

h2. {anchor:ParametrageApplicatif}Paramétrage applicatif (base de données DERBY)

Le paramétrage est un élément important de l'application, tous les écrans y font appel pour décider si tels éléments doivent être affichés ou non.

Cette brique technique se doit d'être le plus ouvert et le plus simple possible. Ainsi l'utilisation d'une base de données mémoire est recommandée dans ce type de configuration car elle est :
* Souple d'utilisation grâce à un accès distant ;
* Accessible par de multiples modules ;
* Modifiable à chaud.

Or des fichiers de configurations permettent d'alimenter simplement cette base de données et de créer les fichiers d'internationalisation correspondant.

Chaque fichier contient la manière de paramétrer les différentes pages => se référer aux fichiers fournis dans les sources.

Les fichiers sont référencés dans le fichier build.xml. En modifiant build.xml, on peut modifier le nom et le nombre des fichiers de paramétrage applicatif.

h3. MyParameters.properties

Ce fichier permet de renseigner des paramètres
* nécessaires à la génération de la base de données,
* communs à l'ensemble de l'application et qui sont nécessaires au bon fonctionnement de l'application.

_global.lang_ permet de définir les langues utilisées par l'application et ainsi vérifier lors de la génération des fichiers d'internationalisation que les libellés sont paramétrés dans l'ensemble des langues définies.

_default.rule.regexp.\*_ définit l'expression régulière utilisée si aucune autre expression n'est définie pour la validation des champs.


h3. MySearch.properties

Ce fichier concerne le paramétrage des pages relatives aux recherches :
* Recherche de sujets :
** Personnes
** Groupes
** Personnes dans un groupe

* Recherche de dossiers

h3. MyStem.properties

Ce fichier concerne le paramétrage des pages relatives aux dossiers :
* Propriétés de dossier
** Attributs

* Création de dossier et Modification de dossier
** Attributs
** Modification de l'extension
** Privilèges

h3. MyGroup.properties

Ce fichier concerne le paramétrage des pages relatives aux groupes :
* Propriétés de groupe
** Attributs
** Membres
** Appartenances
** Privilèges

* Création de groupe et Modification de groupe
** Attributs
** Droits par défaut
** Type personnalisé
** Privilèges

h3. MyGroupDynamic.properties

Ce fichier concerne le paramétrage des pages relatives aux groupes dynamique :
* Onglet groupe dynamique
* Page Tester règle

h3. MyPerson.properties

Ce fichier concerne le paramétrage des pages relatives aux groupes :
* Propriétés de personne&nbsp;:
* Attributs
* Appartenances
* Privilèges
* Abonnements


h2. {anchor:Internationalisation}Internationalisation

h3. Labels

Les fichiers contenant les libellés de l'application et qui ne sont pas créés par la génération de la base de données se trouvent dans les répertoires :
* /ESCO-Grouper/metier/esco-web/src/main/resources/properties/i18n/bundles/screen/
* /ESCO-Grouper/metier/esco-web/src/main/resources/properties/i18n/bundles/
* /ESCO-Grouper/metier/esco-module/dynamique-groupe/src/main/resources/properties/i18n/plugins/screen/

h3. Exceptions

Il est possible de différencier les messages d'erreurs selon les écrans. Liste des préfixes pour les exceptions des résumés :
* org.esco.grouperui.group.resume.&nbsp;: préfixe pour l'écran de 	résumé des propriétés de groupe.
* org.esco.grouperui.person.resume.&nbsp;: préfixe pour l'écran de 	résumé des propriétés de personne.
* org.esco.grouperui.stemmodification.resume.&nbsp;: préfixe pour 	l'écran de résumé d'administration d'un dossier.
* org.esco.grouperui.groupmodification.resume.&nbsp;: préfixe pour 	l'écran de résumé d'administration d'un groupe.

Exemple :

Par défaut lorsque l'exception _ESCOGroupNotSaveException_ est levée le message « Le groupe n'a pas été enregistré. » est affiché.

Si on souhaite avoir un message différent dans le résumé des propriétés de groupe, il suffit de définir une nouvelle clé dans le fichier Error_XX :
{code}org.esco.grouperui.group.resume.ESCOGroupNotSaveException=Mon nouveau message{code}

h3. Aide contextuelle

Les libellés des aides contextuelles se trouvent dans les différents fichiers d'internationalisation avec les clés se terminant par « \_TITLE ».

Si la clé n'existe pas, l'aide contextuelle s'affichera avec "?????CLE?????".

Pour que l'aide contextuelle ne s'affiche pas, il suffit de retirer le libellé après la clé. Par exemple :
{code}STEM_CREATE_GROUP_TITLE={code}

h2. {anchor:Strategies}Stratégies

h3. Recherche de personnes

Le fichier grouper-api-strategy.xml permet de définir quelle stratégie de recherche de personnes est utilisée en fonction d'une expression évaluée.
{code:XML}
<bean id="defaultStrategySubjectLocator" class="org.esco.grouperui.services.grouper.internal.locator.DefaultStrategySubjectLocator">
	<property name="evaluator" ref="evaluator" />
	<property name="defaultSearchStrategies" >
		<map>
			<entry key=" evaluator.regexp('(esco:Etablissements:(([^_]+)_(\\d{5,7}\\w?))(:[^:]+)*)|(esco:admin:.+)|
(esco:Applications:.+)', path)" value-ref="UAIStrategySubjectSearch"></entry>
			<entry key="evaluator.regexp('(.*)', term)" value-ref="defaulStrategySubjectSearch"></entry>
		</map>
	</property>
</bean>
{code}

Dans l'exemple ci-dessus, la stratégie "_UAIStrategySubjectSearch_" sera utilisée pour les groupes dont le path correspond à l'expression régulière indiquée.

Les variables disponibles pour l'expression sont:
* term : le terme de recherche qui peut contenir des caractères joker ;
* path : le chemin à partir duquel on effectue la recherche ;
* person : la personne effectuant la recherche.

h3. Recherche de groupes

Le fichier grouper-client-strategy.xml permet de définir quelle stratégie de recherche de groupes est utilisée en fonction d'une expression évaluée. Ce fichier se trouve dans le répertoire /ESCO-Grouper/ext/grouper-client.fragment/src/main/ressources/spring.
{code:XML}
<bean id="defaultStrategyGroupLocator" class="org.esco.grouperui.services.grouper.internal.locator.DefaultStrategyGroupLocator">
	<property name="evaluator" ref="evaluator" />
	<property name="defaultSearchStrategies" >
		<map>
			<entry key="evaluator.regexp('(.*)', term)" value-ref="defaulStrategyGroupSearch"></entry>
		</map>
	</property>
</bean>{code}
Dans l'exemple ci-dessus, il n'existe qu'une stratégie par défaut.

Les variables disponibles pour l'expression sont :
* field : attribut sur lequel l'utilisateur effectue la recherche. Les valeurs possibles sont name, displayName et extension ;
* type : le type de la recherche (simple ou pour ajout). Les valeurs possibles sont SIMPLE et ADD ;
* path : le chemin à partir duquel on effectue la recherche ;
* term : le terme de recherche qui peut contenir des caractères joker ;
* subject : la personne effectuant la recherche.

h3. Condition par défaut des groupes dynamiques

Le fichier group-dynamic-strategy.xml permet de définir quelle condition par défaut est affichée sur l'onglet Dynamique lors de la création d'un groupe de type dynamique en fonction d'une expression évaluée.
{code:XML}<bean id="defaultStrategyRequestLocator" class="org.esco.grouperui.services.dynamicgroup.internal.DefaultStrategyRequestLocator">
	<property name="evaluator" >
		<bean class="org.esco.grouperui.services.dynamicgroup.internal.ExpressionEvaluator" />
	</property>
	<property name="strategies" >
		<map>
			<entry key="evaluator.regexp('esco:Etablissements:(([Guide d'installation (fr)^_]+)_(\\d{5,7}\\w?))(:[Guide d'installation (fr)^:]+)*', stem.getName())">
				<bean class="org.esco.grouperui.services.dynamicgroup.internal.UAIStrategyRequestFactory" />
			</entry>
			<entry key="evaluator.regexp('(.*)', stem.getName())">
				<bean class="org.esco.grouperui.services.dynamicgroup.internal.DefaultStrategyRequestFactory" />
			</entry>
		</map>
	</property>
</bean>{code}Dans l'exemple ci-dessus, la stratégie "_UAIStrategyRequestFactory_" est utilisée pour les dossiers dont le nom correspond à l'expression régulière indiquée.

Les variables disponibles pour l'expression sont :
* stem : le dossier dans lequel l'utilisateur créé le groupe ;
* person : la personne effectuant la création.

h2. {anchor:Profils}Gestion des profils

Afin de pouvoir paramétrer l'application en fonction d'un utilisateur, il est possible de gérer différents profils.

Le profil peut être récupéré de deux manières différentes :
* En passant dans l'url le paramètre profile=*nomDuProfil\* si l'application est en mode servlet
* En récupérant le profil de la personne connectée sur le Portail si l'application est en mode portlet.

Le mécanisme des profils est décrit dans le document intitulé «&nbsp;ESCO-Grouper - Manuel de développement v1.00.pdf&nbsp;». Le point à retenir est qu'il existe des fichiers \*Profile.xml qu'il est nécessaire de modifier pour autoriser ou non des fonctionnalités.

h3. Ajout d'un profil

Afin d'ajouter un profil, il suffit de rajouter un fichier XML dans le répertoire des profils. Il sera chargé automatiquement au lancement de l'application.

h3. Contenu d'un fichier de profil

Le contenu d'un fichier de profil correspond à ceci :
{code:XML}
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<bean id="testProfile" class="org.esco.grouperui.web.beans.profile.UserProfile">
	<property name="name" value="testProfile"></property>
	<property name="functions">
		<map>
			<!--entry key="*uneClef*" value="*unBooléen*"></entry-->
			<entry key="org.esco.grouperui.web.stem.properties" value="true"></entry>
		</map>
	</property>
</bean>

<bean class="org.esco.grouperui.web.beans.profile.UserProfileAggregator">
	<description>Add the profile to the list of profiles or modify if exist.</description>
	<property name="profiles">
		<list>
			<ref bean="testProfile"></ref>
		</list>
	</property>
</bean>
</beans>{code}Ce fichier, par exemple, va créer un profil nommé « testProfile » qui va permettre aux utilisateurs ayant ce profil d'accéder aux propriétés de dossier dans l'application ESCO-Grouper.

Vous trouverez en annexe §7.4 un tableau récapitulatif des clefs possibles.

h2. {anchor:ServeurSMTP}Serveur SMTP

Le serveur SMTP permet d'envoyer des mails dans le cas d'une erreur technique intervenu dans l'application.

Ce fichier smtp.xml ne doit être modifié que dans le cas où il existe plusieurs serveurs SMTP dédiés à l'application. Si un seul serveur est utilisé, la configuration s'effectue dans le fichier ESCOGrouper.properties.

h2. {anchor:AideEnLigne}Aide en ligne

Le fichier Help_XX.properties, qui se trouve dans le répertoire ESCOGrouper/metier/esco-web/src/main/resources/properties/i18n/bundles/screen, effectue le mapping entre les codes écran et l'emplacement des fichiers HTML contenant les aides.

Par exemple pour l'aide en ligne de la zone de navigation :
{code}ONLINE_HELP_NAVIGUATION_AREA_URL=/ESCOGrouper/stylesheets/onlineHelp/en/navigationArea.html{code}Les fichiers HTML peuvent être modifies à chaud sur le serveur Tomcat.

+Remarque :+ les fichiers pouvant se trouver n'importe où sur le serveur Tomcat, il faut faire attention au chemin indiqué, surtout si le contexte de déploiement est différent.

h2. Paramétrage du bandeau

Pour afficher le bandeau du haut, il faut mettre à true la variable displaying de Banner dans le fichier /ESCO-Grouper/metier/esco-web/src/web/webapp/media/js/esco/option.js.

Pour ne pas l'afficher, il faut mettre la variable à false.
{code:XML}

{code}
/*\*
* Class to show banner or not
\*/
var Banner  = {
displaying : true,
isDisplayed : function(){		return this.displaying;	}
};{code}
h1. Annexes


h2. Environnements

Les fichiers de configurations modifiés pour installer l'application sont les suivants :
* \ESCOGrouper\metier\esco-web\src\main\filters\filters.properties
* \ESCOGrouper\metier\esco-web\src\main\resources\properties\config.properties
* \ESCOGrouper\metier\esco-web\src\main\resources\properties\env.properties
* \ESCOGrouper\metier\esco-web\src\main\resources\properties\applicationContext.xml

h3. filter.properties

Ce fichier est composé de filtres pour créer les fichiers de configuration de Grouper (grouper-client.properties, sources.xml, grouper.hibernate.properties et log4j.properties). Au moment de la compilation du projet via maven ces variables seront remplacées dans les fichiers adéquats.

h4. Variables d'environnement requises dans grouper.client.properties

|| Clef || Description || Exemple ||
| grouperClient.ldap.url | Url du LDAP pour Grouper client | ldap://172.31.142.71/dc=esco-portail,dc=org |
| grouperClient.ldap.login | Login du compte admin du serveur LDAP | admin |
| grouperClient.ldap.password | Mot de passe du compte admin du serveur LDAP | passwd |
| grouperClient.webService.url | Url d'appel des web-services Grouper | [http://localhost:8080/grouper-ws/servicesRest/|http://localhost:8080/grouper-ws/servicesRest/]\\ |
| grouperClient.webService.login | Login de connexion aux web-services | grouper |
| grouperClient.webService.password | Mot de passe de connexion aux web-service | passwd |

h4. Variables d'environnement requises dans  sources.xml

|| Clef || Description || Exemple ||
| PROVIDER_URL | Url du serveur LDAP | ldap://172.31.142.71:389 |
| SECURITY_PRINCIPAL | Dn du serveur LDAP | cn=admin,dc=esco-portail,dc=org |
| SECURITY_CREDENTIALS | Login du compte admin du serveur LDAP | admin |
| base | Base du serveur LDAP | ou=people,dc=esco-portail,dc=org |

h4. Variables d'environnement requises dans grouper.hibernate.properties

|| Clef || Description || Exemple ||
| hibernate_driver_class | Driver de la base de données Grouper | com.mysql.jdbc.Driver |
| hibernate_username | Login de connexion à la base de données Grouper | grouper |
| hibernate_password | Mot de passe pour se connecter à la base de données Grouper | passwd |
| hibernate_url | Url de la base de données Grouper | jdbc:mysql://escogrouper:3306/grouper?characterEncoding=UTF-8 |

h4. Variables d'environnement requises dans log4j.properties

|| Clef || Description ||
| log4j.appender.grouper_event.File | Fichier de log des événements Grouper |
| log4j.appender.grouper_error.File | Fichier de log des erreurs Grouper |
| log4j.appender.grouper_debug.File | Fichier de log du debug Grouper |

h3. config.properties

Fichier de configuration d'ESCOGrouper lui-même. Il permet de configurer les variables d'environnement nécessaires à l'utilisation de CAS et définir les chemins relatifs d'accès aux médias.
|| Clef || Description || Exemple ||
| mediaPath.portlet | Chemin relatif d'accès aux médias en mode Portlet | /ESCOGrouper/media |
| mediaPath.servlet | Chemin relatif d'accès aux médias en mode Servlet | ../media |
| cas.url.login | Url de connexion de CAS | [https://localhost:8443/cas/login] |
| cas.url.logout | Url de déconnexion de CAS | [https://localhost:8443/cas/logout] |
| cas.url.validator | Url de validation CAS | [https://localhost:8443/cas] |
| app.spring.ckeck | Url de vérification de la validité de session | [https://localhost:8443/ESCOGrouper/j_spring_cas_security_check] |
| cas.service | Url du service cas | [https://localhost:8443/cas] |
| casValidateUrl | Url du service de validation par proxy | [https://localhost:8443/cas/proxyValidate] |
| proxyCallbackUrl | Url du callback service de validation par proxy | [https://localhost:8443/ESCOGrouper/casProxyCallback] |
| ldap.url | Url du serveur LDAP | ldap://0.0.0.0:389/ |
| ldap.dn | Dn du serveur LDAP | cn=admin,dc=esco-portail,dc=org |
| ldap.password | Login du compte admin du serveur LDAP | admin |
| ldap.basedc | Dc du serveur LDAP | dc=esco-portail,dc=org |
| ldap.baseuid | Id de la base LDAP | ou=people,dc=esco-portail,dc=org |
| ldap.basehasMember | Base où se trouve l'information hasMember dans le LDAP | ou=groups,dc=esco-portail,dc=org |

h3. env.properties

Fichier de configuration de la base de paramétrage. Il permet de configurer la connexion à la base de données mémoire Derby.

|| Clef || Description || Exemple ||
| environnement.type | Type de l'environnement | Dev |
| version | Version de l'application | 2.2.00 |
| parameter.db.classname | Driver de la base de données | org.apache.derby.jdbc.ClientDriver |
| parameter.db.port | Port d'écoute de la base de données | 1527 |
| parameter.db.host | Hôte de la base de données | 0.0.0.0.0 |
| parameter.db.url | Url de la base de données | jdbc:derby://localhost:1527/opt/tomcat/esco/data/ESCODB;create=true; |
| parameter.db.username | Utilisateur de la base de données | sa |
| parameter.db.password | Mot de passe de l'utilisateur de la base de données | manager |

h3. applicationContext.xml

Fichier principal de définition des beans spring. Il permet de définir le type d'authentification de l'application (par formulaire inclus avec des utilisateurs spécifiques ou CAS). Les utilisateurs utilisés pour le mode formulaire sont spécifiés dans le fichier auth-form.xml.

h2. Groupes dynamiques

Le fichier dynConfig.properties du projet dynamique-groupe doit être modifié pour prendre en compte les groupes dynamiques. Il se trouve dans le répertoire /ESCOGrouper/metier/esco-module/dynamique-groupe/src/main/resources\properties.
|| Clef || Description || Exemple ||
| dynamic.key.attribute.ldaprequest | Mette la valeur définie dans la table grouper_fields et la colonne name. Cette valeur est l'attribut où sera sauvegardée la requête de constitution des groupes dynamiques. | rule |
| dynamic.value | Mettre la valeur définie dans la table grouper_types et la colonne name. Cette valeur définit le type dynamique. | dynamic |
| tab.regpresent | Remplacer la valeur « dynamique » par celle saisie précédemment dans la clé dynamic.value. | |
| tab.group.regpresent | Remplacer la valeur « dynamique » par celle saisie précédemment dans la clé dynamic.value. | |

h2. Exemple de fichier sources.xml de grouper-ws

Voici un exemple de sources.xml. Ce fichier doit contenir les attributs LDAP à afficher dans l'application ESCO-Grouper. Il se trouve dans le répertoire /WEB-INF/classes/ de grouper-ws.
{code:XML}
<?xml version="1.0" encoding="utf-8"?>

<!--
Grouper's subject resolver configuration
$Id: sources.example.xml,v 1.7 2008/11/22 21:39:14 mchyzer Exp $
-->

<sources>

  <!-- Group Subject Resolver -->
  <!--
    NOTE: It is recommended that you **not** change the default
          values for this source adapter.
  -->
  <source adapterClass="edu.internet2.middleware.grouper.GrouperSourceAdapter">
    <id>g:gsa</id>
    <name>Grouper: Group Source Adapter</name>
    <type>group</type>
  </source>

   <source adapterClass="edu.internet2.middleware.subject.provider.ESCOJNDISourceAdapter">
      <id>esco:ldap</id>
      <name>JNDI Source Adapter</name>
      <type>person</type>
      <init-param>
         <param-name>INITIAL_CONTEXT_FACTORY</param-name>
         <param-value>com.sun.jndi.ldap.LdapCtxFactory</param-value>
      </init-param>

      <init-param>
         <param-name>PROVIDER_URL</param-name>
         <param-value>ldap://172.31.142.71:389</param-value>
      </init-param>

      <init-param>
         <param-name>SECURITY_AUTHENTICATION</param-name>
         <param-value>simple</param-value>
      </init-param>

      <init-param>
         <param-name>SECURITY_PRINCIPAL</param-name>
         <param-value>cn=admin,dc=esco-portail,dc=org</param-value>
      </init-param>

      <init-param>
         <param-name>SECURITY_CREDENTIALS</param-name>
         <param-value>admin</param-value>
      </init-param>

      <init-param>
         <param-name>SubjectID_AttributeType</param-name>
         <param-value>uid</param-value>
      </init-param>

      <init-param>
         <param-name>Name_AttributeType</param-name>
         <param-value>ENTPersonLogin</param-value>
      </init-param>

      <init-param>
         <param-name>Description_AttributeType</param-name>
         <param-value>displayName</param-value>
      </init-param>

      <search>
         <searchType>searchSubject</searchType>
         <param>
            <param-name>filter</param-name>
            <param-value>(&amp; (uid=%TERM%)(objectclass=inetOrgPerson))</param-value>
         </param>
         <param>
            <param-name>scope</param-name>
            <param-value>ONELEVEL_SCOPE</param-value>
         </param>
         <param>
            <param-name>base</param-name>
            <param-value>ou=people,dc=esco-portail,dc=org</param-value>
         </param>
      </search>

      <search>
         <searchType>searchSubjectByIdentifier</searchType>
         <param>
            <param-name>filter</param-name>
            <param-value>(uid=%TERM%)</param-value>
         </param>
         <param>
            <param-name>scope</param-name>
            <param-value>ONELEVEL_SCOPE</param-value>
         </param>
         <param>
            <param-name>base</param-name>
            <param-value>ou=people,dc=esco-portail,dc=org</param-value>
         </param>
      </search>

    <search>
       <searchType>search</searchType>
         <param>
            <param-name>scope-attribut</param-name>
            <param-value>ESCOUAI</param-value>
        </param>
         <param>
            <param-name>filter</param-name>
            <param-value>(|(cn=%TERM%)(sn=%TERM%)(uid=%TERM%))</param-value>
        </param>
        <param>
            <param-name>scope</param-name>
            <param-value>ONELEVEL_SCOPE</param-value>
        </param>
         <param>
            <param-name>base</param-name>
            <param-value>ou=people,dc=esco-portail,dc=org</param-value>
        </param>
    </search>

    <attribute>displayName</attribute>
    <attribute>ENTPersonLogin</attribute>
    <attribute>ENTTitle</attribute>
    <attribute>ENTPersonFonctions</attribute>
    <attribute>uid</attribute>
    <attribute>cn</attribute>
    <attribute>sn</attribute>
    <attribute>givenName</attribute>
    <attribute>ESCOUAI</attribute>
    <attribute>mail</attribute>
    <attribute>ESCOUAIRattachement</attribute>
    <attribute>objectClass</attribute>

   </source>
</sources>
{code}

h2. Tableau récapitulatif des clefs possibles pour la gestion de profils

|| Zone de navigation || || ||
| org.esco.grouperui.web.areaNavigation | Affichage ou non de la zone de navigation |
|| Menu contextuel || ||
| org.esco.grouperui.web.menu.createGroup | Menu contextuel permettant la création de groupe |
| org.esco.grouperui.web.menu.createStem | Menu contextuel permettant la création de dossier |
| org.esco.grouperui.web.menu.search | Menu contextuel permettant la recherche simple (Dépend de la zone de navigation) |
| org.esco.grouperui.web.menu.administrate | Menu contextuel permettant d'administrer un groupe ou dossier |
| org.esco.grouperui.web.menu.properties | Menu contextuel permettant d'accéder aux propriétés d'un groupe ou dossier |
| org.esco.grouperui.web.menu.optin | Menu contextuel permettant de s'abonner à un groupe |
| org.esco.grouperui.web.menu.optout | Menu contextuel permettant de se désabonner d'un groupe |
| org.esco.grouperui.web.menu.delete | Menu contextuel permettant de supprimer un groupe ou un dossier |
|| Propriété de personnes || ||
| org.esco.grouperui.web.person.properties | Permettre d'accéder ou non aux propriétés de l'individu |
| org.esco.grouperui.web.person.properties.tab.memberships | Afficher ou non l'onglet d'appartenance dans l'écran propriété de personne |
| org.esco.grouperui.web.person.properties.tab.privileges | Afficher ou non l'onglet de privilèges dans l'écran propriété de personne |
| org.esco.grouperui.web.person.properties.tab.subscriptions | Afficher ou non l'onglet des abonnements dans l'écran propriété de personne |
|| Propriété de groupes || ||
| org.esco.grouperui.web.group.properties | Permettre d'accéder ou non aux propriétés d'un groupe |
| org.esco.grouperui.web.group.properties.tab.members | Afficher ou non l'onglet des membres dans l'écran propriété de groupe |
| org.esco.grouperui.web.group.properties.tab.memberships | Afficher ou non l'onglet des appartenances dans l'écran propriété de groupe |
| org.esco.grouperui.web.group.properties.tab.privileges | Afficher ou non l'onglet des privilèges dans l'écran propriété de groupe |
|| Modification de groupes || ||
| org.esco.grouperui.web.group.modification | Permettre d'accéder ou non à la modification d'un groupe |
|| Propriété de dossiers || ||
| org.esco.grouperui.web.stem.properties | Permettre d'accéder ou non aux propriétés d'un dossier |
|| Modification de dossiers || ||
| org.esco.grouperui.web.stem.modification | Permettre d'accéder ou non à la modification d'un dossier |
| org.esco.grouperui.web.stem.modification.tab.privileges | Afficher ou non l'onglet de privilèges dans l'écran privilège de la modification de dossier |