Pages enfant
  • Personnalisation

Application Esup Activ FO

Déclaration des différents statuts des personnes pouvant utiliser l'application

Editer le fichier properties/web/status.xml : chaque statut correspond à un <bean>. Chaque bean est défini de la manière suivante :

 <bean
        id="[ID bean]"
        class="org.esupportail.activfo.web.beans.BeanFieldImpl"
        scope="session"
        >       
        <property name="key" value="[ID message du label]"/>
        <property name="value" value="[ID status]"/>
</bean> 

Avec :

  • [ID bean] : identifiant du <bean> du statut utilisé dans les autres fichiers de configuration pour y faire référence
  • [ID message du label] : identifiant du message correspondant au label du statut. Pour plus d'informations sur les messages, consulter la partie dédiée.
  • [ID statut] : identifiant unique du statut utilisé uniquement durant l'interaction entre les pages

Déclaration des procédures accessibles

Editer le fichier properties/web/controllers.xml et repérer les propriétés listBeanProcedureWithCas et listBeanProcedureWithoutCas. Ces propriétés définissent respectivement la liste des procédures accessibles en cas d'accès authentifié et en cas d'accès non-authentifié à l'application. Chaque procédure est référencée en fonction de l'identifiant du bean correspondant défini dans le fichier properties/web/process.xml :

<bean
        id="[ID bean procedure]"
        class="org.esupportail.activfo.web.beans.BeanFieldImpl"
        scope="session"
        >
        <property name="key" value="[ID message label procedure]"/>
        <property name="value" value="[ID procedure]"/>
</bean>

Avec :

  • [ID bean procedure] : identifiant du bean utilisé pour y faire référence
  • [ID message label procedure] : identifiant du message correspondant au label de la procédure
  • [ID procedure] : identifiant applicatif de la procédure. Actuellement les identifiants des procédures disponibles sont :
    • Activation de son compte : activation
    • Réinitialisation de son mot de passe : reinitialisation
    • Changement de son mot de passe : passwordchange
    • Changement de son login : loginchange
    • Mise à jour de ses données personnelles : datachange

Note importante : Des variables de configurations ont été définies pour faciliter la référence à une procédure. Ces variables sont définies dans le fichier config.properties sous le préfixe view.procedure.

Déclaration des informations d'identification pour chacun des statuts

Editer le fichier properties/web/controllers.xml et repérer la propriété beanFieldStatus du bean accountController. Cette propriété définie pour chacun des statuts la liste des informations qui devront être saisies par l'utilisateur durant l'étape d'identification. Pour chaque statut une entrée de la liste est définie :

<entry>
        <key><ref bean="[ID bean du status]"/></key>
        <list>
                <ref bean="[ID bean du champ 1]"/>
                <ref bean="[ID bean du champ 2]"/>
        </list>
</entry>

Avec :

  • [ID bean du statut] : l'identifiant du bean du statut défini dans le fichier status.xml
  • [ID bean du champ X] : les identifiants des beans correspondant aux informations. Ces identifiants doivent correspondre aux identifiants des beans déclarés dans le fichier properties/web/infoToValidate.xml (voir section concernée).

Déclaration des informations demandées lors de l'étape 2 de l'activation

Editer le fichier properties/web/infoDataChange.xml et repérer le bean beanPersonalInfoDigest. Sa propriété listBeanField liste les informations qui seront demandées à l'utilisateur quel que soit son profil (employé, étudiant, ...). Ses propriétés beanFieldProfile et deniedBeanFieldProfile permettent respectivement de réserver des informations à un profil d'utilisateur en particulier et d'exclure des informations pour un profile particulier.

<bean id="beanPersonalInfoDigest"
        class="org.esupportail.activfo.web.beans.CategoryBeanFieldImpl"
        scope="session">
        <property name="title" value="[ID message titre étape]"/>
        <property name="name" value="personalInfo"/>
        <property name="account" ref="account"/>
        <property name="beanFieldProfile">
          <map>                   
           <entry>
             <key> 
               <ref bean="[ID bean à réserver]"/>
             </key>    
             <map>   
               <entry key="[attribut LDAP 1]">
                 <list>
                   <value>[valeur attribut LDAP 1]</value>
                 </list>         
               </entry>  
             </map>    
           </entry>        
          </map>   
        </property>
        <property name="deniedBeanFieldProfile">
        <map>                   
         <entry>
           <key> 
             <ref bean="[ID bean a exclure]"/>
           </key>    
           <map>   
             <entry key="[attribut LDAP 2]">
               <list>
                 <value>[valeur attribut LDAP 2]</value>
               </list>   
             </entry>  
           </map>    
         </entry>  
        </map>   
        </property>
        <property name="listBeanField">
         <list> 
           <ref bean="[ID bean 1]"/>
           <ref bean="[ID bean 2]"/>
           [...]   
         </list>   
        </property> 
</bean>

Avec : 

  • [ID bean 1] et [ID bean 2] : les identifiants des beans à afficher qui doivent correspondre aux ID des beans du fichier properties/web/infoPerso.xml
  • [ID bean à réserver] / [attribut LDAP 1] / [valeur attribut LDAP 1] : l'identifiant d'un bean [ID bean à réserver] à réserver aux seuls personnes ayant dans leur attribut LDAP [attribut LDAP 1] la valeur [valeur attribut LDAP 1].
  • [ID bean à exclure] / [attribut LDAP 2] / [valeur attribut LDAP 2] : l'identifiant d'un bean [ID bean à exclure] à exclure pour les personnes ayant dans leur attribut LDAP [attribut LDAP 2] la valeur [valeur attribut LDAP 2].

Note importante : Les beans réservés et exclus doivent également être listé dans la propriété listBeanField.

Déclaration des informations liées à chacun des statuts

Attention

Ces déclarations d'informations sont potentiellement utilisées dans plusieurs procédures, notamment celle d'activation du compte (étape 2) et celle de modification de ses informations personnelles. Il faut donc que vos messages, contraintes et éventuelles validateurs vous conviennent pour l'ensemble des procédures faisant références à ces beans. Si vous avez des différences d'une procédure à l'autre, il vous faut dupliquer le bean pour le spécialisé pour chaque procédure.

 

Editer le fichier properties/web/infoPerso.xml : chaque information correspond à un <bean> défini de la manière suivante :

<bean
        id="[ID bean info]"
        class="org.esupportail.activfo.web.beans.BeanFieldImpl"
        scope="session"
        >
        <property name="key" value="[ID message du label]"/>
        <property name="value" value="[valeur]"/> 
        <property name="name" value="[nom attribut LDAP]"/>
        <property name="validator" ref="[ID validator]"/>
        <property name="help" value="[ID message d'aide]"/>
        <property name="constraint" value="[ID message contrainte]"/>
        <property name="disgestConstraint" value="[ID message digestContrainte]"/>
        <property name="notice" value="[ID message alerte]"/>
        <property name="required" value="[obligatoire]" />
        <property name="converter" ref="[ID converter]"/>
        <property name="useConvertedValue" value="[utiliser valeur convertie]"/>
        <property name="updateable" value="[mise à jour directe dans l'annuaire]"/>
        <property name="sendMail" value="[envoi d'un email de notification de changement]"/>
</bean>

Avec :

  • [ID bean info] : identifiant du <bean> de l'information utilisée dans les autres fichiers de configuration pour y faire référence
  • [valeur] : il s'agit de la valeur par défaut de l'information. Cette propriété n'est pas obligatoire. Elle est souvent alimentée par les informations récupérées dans l'annuaire LDAP en cas de formulaire de modification des données. Sous-usage prend cependant du sens lors d'un champ de type bouton-radio.
  • [nom attribut LDAP] : le nom de l'attribut LDAP correspondant à l'information.
  • [ID validateur] : l'identifiant du validateur à utiliser pour cette information. Cet identifiant doit correspondre à un des validateurs définis dans le fichier properties/web/validators.xml
  • [ID message d'aide] : identifiant du message correspondant au message d'aide pour cette information. Ce message sera affiché lors du survole de la bulle d'aide à côté du champ de saisie de l'information. Pour plus d'informations sur les messages, consulter la partie dédiée.
  • [ID message contrainte] : identifiant du message correspondant au message de contrainte pour cette information. Ce message sera affiché sous le champ de saisie de l'information et permettra par exemple de préciser le format attendu, de fournir des exemples de valeurs ou encore de préciser que la modification de l'information sera traitée après validation par le service responsable. Pour plus d'informations sur les messages, consulter la partie dédiée.
  • [ID message digestContrainte] : FIXME
  • [ID message alerte] : identifiant de message correspondant au message d'alerte pour cette information. Ce message sera affiché lors du survole d'un icône /!\ inséré à côté du champ de saisie de l'information. Pour plus d'informations sur les messages, consulter la partie dédiée.
  • [obligatoire] : booléen définissant si l'information est obligatoire ou non. Les valeurs possibles sont "true" ou "false".
  • [ID converteur] : identifiant du convertisseur de valeur utilisé pour cette information. Cet identifiant doit correspondre à un des convertisseur définis dans le fichier properties/web/converters.xml.
  • [utiliser valeur convertie] : booléen définissant si la valeur convertie par le convertisseur doit être utilisée. Valeurs possibles : "true" ou "false"
  • [mise a jour directe dans l'annuaire] : booléen définissant si le champ peut être directement modifié par l'utilisateur dans l'annuaire (via une requête au BO) ou si au contraire il doit être modéré par les services de gestion du personnels ou des étudiants.
  • [envoi d'un email de notification de changement] : booléen définissant si la modification du champ en direct dans l'annuaire LDAP doit être notifié par email aux services de gestion du personnels ou des étudiants.

 

Note importante : Les attributs LDAP utilisés doivent être listés dans le paramètre attributes.datachange pour que les beans puissent être utilisés dans le fichier properties/web/infoDataChange.xml.

Personnalisation de la page de saisie d'un nouveau mot de passe

Cette page est gérée via le bean beanNewPassword défini dans le fichier properties/web/fieldNewPassword.xml :

<bean
        id="beanNewPassword"
        class="org.esupportail.activfo.web.beans.BeanFieldImpl"
        scope="session"
        >       
        <property name="key" value="[ID message label]"/>
        <property name="value" value=""/>
        <property name="validator" ref="[ID validateur]"/>
        <property name="help" value="[ID message aide]"/>
        <property name="required" value="true" />
</bean>

Avec :

  • [ID message label] : identifiant du message correspondant au label du champ de nouveau mot de passe
  • [ID message aide] : identifiant du message correspondant à l'aide de saisie du champ de nouveau mot de passe
  • [ID validateur] : l'identifiant du validateur à utiliser pour le nouveau mot de passe. Cet identifiant doit correspondre à un des validateurs définis dans le fichier properties/web/validators.xml. Par défaut il s'agit du validateur validatorPasswordAndSpace qui contrôle que le mot de passe :
    • ne contient pas d'espace
    • contiennent uniquement des caractères ASCII
    • respecte l'expression régulière du validateur validatorPassword à savoir (par défaut) : au moins 8 caractères et au moins une minuscule, une majuscule et un chiffre

Note : La page de changement du mot de passe contient un widget graphique vérifiant dynamiquement la robustesse du nouveau mot de passe saisie par l'utilisateur. Cette vérification dynamique est développée en JavaScript et le code correspondant est directement contenu dans le template JSP de la page correspondant à savoir le fichier webapp/stylesheets/accountPassword.jsp.

Configuration des canaux d'envoi du code de validation de la procédure de récupération du mot de passe

Les canaux d'envoi du code de validation de la procédure de récupération du mot de passe sont configurés au niveau du Back-Office dans le fichier properties/domain/domain.xml. La liste des canaux disponibles sont configurés dans la propriété channels du bean abstractDomainService :

<property name="channels">
        <list>
                <ref bean="[ID bean channel]"/>
                [...]           
        </list>
</property>

Avec :

  • [ID bean channel] : identifiant du bean correspondant au canal d'envoi

Les beans des canaux d'envoi sont configuré dans le même fichier de la manière suivante :

<bean
        id="[ID bean channel]"
        class="[ID class channel]"
        parent="abstractChannel"
        >       
        <property name="name" value="[nom du canal]"/>
        <property name="codeDelay" value="[délai validité code]"/>
        [...]
</bean>

Avec :

  • [ID bean channel] : identifiant du bean correspondant au canal d'envoi
  • [ID class channel] : identifiant de la classe JAVA implémentant ce canal d'envoi. Les classes fournis sont :
    • org.esupportail.activbo.domain.beans.channels.MailPersoChannel : Envoi du code via l'adresse email personelle de l'utilisateur
    • org.esupportail.activbo.domain.beans.channels.Mail2GestChannel : Envoi du code par email à un service de support
    • org.esupportail.activbo.domain.beans.channels.SMSUChannel : Envoi du code via SMSU sur le numéro de mobile de l'utilisateur
    • org.esupportail.activbo.domain.beans.channels.CodeChannel : faux canal d'envoi utilisé si l'utilisateur dispose déjà d'un code et qu'il souhaite simplement le saisir
    • org.esupportail.activbo.domain.beans.channels.Mail2SMSChannel : Envoi du code via une passerelle mail2SMS
  • [nom du canal] : le nom du canal d'envoi

  • [délai validité code] : le délai de validité du code envoyé par ce canal

Des propriétés propres au canal d'envoi du code sont également configurés :

  • MailPersoChannel :
    • smtpService : identifiant du bean correspondant au service d'envoi de mail à utilisé. Le beansmtpService est classiquement utilisé. Ce bean est configuré dans le fichier properties/smtp/smtp.xml
    • attributeMailPerso : le nom de l'attribut LDAP correspondant à l'adresse mail personnelle de l'utilisateur
    • attributeDisplayName : le nom de l'attribut LDAP correspondant au nom d'affichage de l'utilisateur
    • mailCodeSubject : le sujet du mail
    • mailCodeBody : le contenu du mail. Ce contenu sera formaté en remplacant les mots clés suivants :
      • {0} : le nom d'affichage de l'utilisateur
      • {1} : le code de validation
      • {2} : la date de fin de validité du code de validation
  • Mail2GestChannel :
    • smtpService : identifiant du bean correspondant au service d'envoi de mail à utilisé (cf. MailPersoChannel)
    • mailGest : l'adresse email pour joindre le service support correspondant
    • attributeDisplayName : le nom de l'attribut LDAP correspondant au nom d'affichage de l'utilisateur
    • Propriétés access et deny : permet de filtrer l'accès à ce canal. La propriété access permet d'autorisé le canal sur la base de valeurs discrimitantes d'un attribut LDAP [ID attribut1]. De la même manière, la propriété deny permet d'interdire le canal sur la base de valeurs discrimitantes d'un attribut LDAP [ID attribut2]. Ces deux propriétés peuvent éventuellement être cumulé : les valeurs interdites seront alors analysées avant les valeurs autorisées. La configuration de ces propriétés se fait de la manière suivante :

      <property name="access">
            <map>   
                  <entry key="[ID attribut1]">
                          <list>  
                                  <value>[valeur attribut1]</value>
                                  [...]   
                          </list> 
                  </entry>
            </map>  
      </property>
      <property name="deny">
            <map>   
                  <entry key="[ID attribut2]">
                          <list>  
                                  <value>[valeur attribut2]</value>
                                  [...]   
                          </list>
                  </entry>
            </map>
      </property>
    • mailCodeSubject : le sujet du mail
    • mailCodeBody : le contenu du mail. Ce contenu sera formaté en remplacant les mots clés suivants :
      • {0} : l'identifiant de l'utilisateur
      • {1} : le code de validation
      • {2} : la date de fin de validité du code de validation
      • {3} : le nom d'affichage de l'utilisateur
  • Mail2SMSChannel :
    • smtpService : identifiant du bean correspondant au service d'envoi de mail à utilisé (cf. MailPersoChannel)
    • attributePager : le nom de l'attribut LDAP correspondant au numéro de mobile de l'utilisateur
    • mailCodeSubject : le sujet du mail à envoyé à la passerelle SMS
    • mailSMS : l'adresse email de la passerelle SMS
    • mailCodeBody : le contenu du mail à envoyé à la passerelle SMS. Ce contenu sera formaté en remplacant les mots clés suivants :
      • {0} : le numéro de mobile de l'utilisateur
      • {1} : le code de validation
      • {2} : la date de fin de validité du code de validation
  • SMSUChannel :
    • attributePager : le nom de l'attribut LDAP correspondant au numéro de mobile de l'utilisateur
    • urlWS : l'URL du webservice de SMSU
    • usernameCredentials : le nom d'utilisateur a utilisé pour se connecter à SMSU
    • passwordCredentials : le mot de passe a utilisé pour se connecter à SMSU
    • messageBody : le contenu du SMS à envoyé par SMSU. Ce contenu sera formaté en remplacant le mot clés {0} par le numéro de mobile de l'utilisateur

Ces canaux sont également référencés au niveau du Front-Office dans le fichier properties/web/channels.xml :

<bean id="[ID bean channel]"
        class="org.esupportail.activfo.domain.beans.channels.ChannelImpl">
        <property name="name" value="[ID bean channel]"/>
        <property name="label" value="[ID message label]"/>
        <property name="homeMsg" value="[ID message home]"/>
        <property name="codeMsg" value="[ID message code]"/>
</bean>

Avec :

  • [ID bean channel] : identifiant correspondant au canal d'envoi côté Back-Office
  • [ID class channel] : identifiant de la classe JAVA implémentant ce canal d'envoi (côté Front-Office cet fois). Les classes fournis sont :
    • org.esupportail.activfo.domain.beans.channels.ChannelImpl : classe générique
    • org.esupportail.activfo.domain.beans.channels.ChannelMailPerso : classe spécifique pour l'envoi du code via l'adresse email personnelle de l'utilisateur. Cette classe permet de faire en sorte que le message home soit composé en remplacant le mot clé {0} à l'aide de valeur caviardée de l'adresse email personnelle de l'utilisateur.
    • org.esupportail.activfo.domain.beans.channels.ChannelPager : classe spécifique pour l'envoi du code via le numéro de mobile de l'utilisateur. Cette classe permet de faire en sorte que le message home soit composé en remplacant le mot clé {0} à l'aide de valeur caviardée du numéro de mobile de l'utilisateur.
  • [ID message label] : l'idendifiant du message utilisé comme label du canal dans la liste affiché à l'utilisateur pour choisir

  • [ID message home] : l'idendifiant du message associé au canal affiché à l'utilisateur sur la page de choix du canal

Gestion des messages

La gestion des messages affichés est réalisée gràce à un mécanisme facilitant l'internationalisation de l'application. Pour cela, plusieurs fichiers sont présents dans le dossier properties/i18n/bundles :

  • un fichier Messages_XX.properties avec XX le code de la langue. Exemple : fr = Français
  • un fichier Custom_XX.properties fichier de personnalisation des messages (facultatif)

Dans ces fichiers on met en correspondance des ID de messages avec les messages correspondant dans la langue du fichier.

Exemple :

ADMINISTRATORS.BUTTON.DELETE_ADMIN = Supprimer

Note importante : Par convention, on ne modifiera que les fichiers Custom_XX.properties et on laissera les fichiers Messages_XX.properties tel que livré par le projet.

 

Modification des fichiers de templates JSP

Vous pouvez modifier directement les templates JSP si vous souhaitez. Ces fichiers de templates se trouvent dans le dossier webapp/stylesheets.

Pour reconnaître le fichier de template utilisé pour une page en particulier, il suffit de remplace le suffixe ".faces" à la fin de l'URL de la page par le ".jsp".

Attention

Une partie de la logique de l'application est implémenté dans les fichiers de templates. La modification de ces fichiers peuvent entraîner dysfonctionnement de l'application.

 

 

Version d'esup activ utilisée pour la réalisation de la documentation initiale

v2.3.1 (décembre 2014)

 

 

  • Aucune étiquette