Sommaire
Vue générale
w.c.s est un logiciel permettant de générer des formulaires et des consultations en ligne et de les intégrer dans un workflow. Il est conforme aux standards et protocoles du consortium Liberty Alliance grâce à l'utilisation de la librairie certifiée Lasso. Il dispose d'une interface d'administration et d'un back-office soignés permettant une personnalisation poussée et son adaption à de nombreux usages différents.
Se procurer et installer w.c.s.
Installation sous Debian Sarge
Pour fonctionner correctement Authentic s'appuie sur :
Apache (1.3 ou 2, Apache2 recommandé) ;
Lasso (0.6.2) ;
Quixote (2.0) ;
mod_python ou SCGI (SCGI recommandé).
Installation des paquets
En tant que root tapez la commande
echo 'deb http://deb.entrouvert.org/ sarge main' >> /etc/apt/sources.list
Cette commande ajoute le répertoire qui contient tous les paquets nécessaires dans votre fichier sources.list.
Toujours en tant que root tapez
apt-get update apt-get install wcs
Tous les paquets nécessaires sont installés.
Si vous ne souhaitez pas modifier votre fichier sources.list vous pouvez récupérer les paquets nécessaire et les installer manuellement avec la commande dpkg -i :
wcs et Quixote 2.0 sur http://wcs.labs.libre-entreprise.org/ ;
Lasso sur http://lasso.entrouvert.org.
Configuration d'Apache
Il faut ensuite configurer Apache pour avoir un virtual host w.c.s., le fichier d'example ci-dessous s'appelle vhost-apache-wcs et il est installé par défaut. Il fonctionne (en remplaçant www.example.com par le nom de domaine que vous avez choisi pour w.c.s., nous utiliserons wcs.example.com) pour Apache 2 et SCGI. Vous le trouverez dans le répertoire /etc/apache2/sites-enabled.
<VirtualHost *>
ServerAdmin webmaster@locahost
ServerName wcs.example.com
DocumentRoot /usr/share/wcs/web/
SCGIMount / 127.0.0.1:3001
<LocationMatch "^/(css|images|js)/.*">
SCGIHandler off
</LocationMatch>
CustomLog /var/log/apache2/wcs-access.log combined
ErrorLog /var/log/apache2/wcs-error.log
</VirtualHost>
Pour activer w.c.s. au sein d'Apache il faut créer un lien vers ce fichier depuis le répertoire /etc/apache2/sites-available. Utilisez la commande :
a2ensite vhost-apache-wcs
Ensuite, il s'agit d'activer le module SCGI, s'il ne l'était déjà.
a2enmod scgi
Vous pouvez ensuite redémarrer Apache (toujours en root) :
/etc/init.d/apache2 restart
Pensez également à vous assurer que le nom de domaine que vous utilisez soit résolu correctement (via le DNS ou votre fichier /etc/hosts). Lorsque w.c.s. fonctionne, l'interface d'administration est se trouve à l'URL http://wcs.example.com/admin.
Installation avec une autre distribution Linux
Nous supposons qu'Apache, SCGI ou mod_python sont déjà installés. Il faut ensuite télécharger les sources suivantes et les installer :
Pour installer Authentic, décompressez les sources que vous avez téléchargées et lancez le script setup.py
tar xzf wcs-VERSION.tar.gz cd wcs-VERSION python setup.py install
Il vous faut ensuite configurer correctement Apache.
Lorsque que w.c.s. fonctionne, l'interface d'administration est accessible à l'URL http://wcs.example.com/admin.
Installation sous Windows
Nous n'avons pas à l'heure actuelle réalisé d'installation de w.c.s. sous Windows. Mais étant donné que tous les composants nécessaires à son utilisation fonctionne sur ce système d'exploitation, l'installation est envisageable et nous seront peut-être amenés à la décrire bientôt. N'hésitez pas à nous faire part de vos tentatives.
Création Administrateur
Pour créer l'administrateur, allez sur l'interface d'administration de w.c.s.. Cliquez sur l'onglet « Gestion des identités », puis sur le lien « Ajouter une identité ».
Remplissez les champs suivants :
- Nom (saisissez vos Nom et prénom) ;
- Courriel (saisissez votre Courriel) ;
- Compte administrateur (cochez cette case pour que le compte créé soit un compte administrateur).
Cliquez sur valider, le compte administrateur est créé.
Rôles
Les rôles sont utilisés pour deux aspects différents :
- pour déterminer qui recevra et gérera un type donné de formulaire ;
- pour déterminer qui pourra compléter un type donné de formulaire.
S'agissant de l'aspect réception et gestion des formulaires, à chaque rôle il faut affecter une ou plusieurs adresses mail, qui seront destinataires des notifications de remplissage de formulaires par les utilisateurs.
Le champ détail du rôle s'il est complété donne une information, au niveau du récapitulatif d'une demande, sur la personne chargée du traitement de celle-ci.
Utilisateurs
Une fois un rôle créé, il faut l'affecter à des utilisateurs qui y auront accès au back-office correspondant.
Cas de l'identification locale
L'utilisateur existe, affectez-lui le ou les rôles souhaités.
L'utilisateur n'existe pas, créez-le et affectez-lui le ou les rôles souhaités.
Cas de l'identification liberty
Si nécessaire, reportez vous à la partie « Liberty Alliance » du chapitre « Paramètres » pour la configuration du support Liberty Alliance.
L'utilisateur existe, affectez-lui le ou les rôles souhaités.
L'utilisateur n'existe pas, créez-le et affectez-lui le ou les rôles souhaités, puis générez lui un jeton afin qu'il puisse rattacher l'utilisateur à sa clé de fédération. il faut également que l'utilisateur dispose d'un compte sur le fournisseur d'identité pour pouvoir se connecter à w.c.s.
Catégories
Permet de gérer les catégories dans lesquelles les formulaires seront rangés coté utilisateur, back-office et admin, par exemple « vie pratique ».
Par défaut si la catégorie de rangement n'est pas choisie pour un formulaire, il est classé dans la catégorie divers.
La description permet d'apporter des éléments d'information coté utilisateur, par exemple un texte descriptif de l'utilité des formulaires de cette catégorie.
Formulaires
Permet de créer et d'administrer des formulaires et des consultations, une consultation n'est qu'un formulaire particulier. Un ensembles de formulaires mettant en avant différentes fonctionnalités de w.c.s est disponible :
Vous pouvez aussi télécharger (ou déposer) des formulaires sur le site communautaire de "Au Quotidien", une offre en ASP articulée autour de w.c.s.
Création du formulaire
Cliquez sur « nouveau »
Donnez un nom au formulaire, choisissez en le destinataire.
La catégorie permet de classer l'affichage du formulaire coté utilisateur.
La liste workflow permet d'affecter un workflow particulier au formulaire. Par défaut w.c.s. dispose d'un workflow de base permettant le traitement des formulaires par un interlocuteur.
Ensuite affectez un ou plusieurs rôles au formulaire, par défaut un formulaire est accessible à tout le monde, on peut en restreindre l'accès coté utilisateur de manière fine par le biais des rôles.
Cliquez sur le bouton valider, vous accédez à l'interface de définition des champs du formulaire.
Vous pouvez au choix définir les champs un à un ou importer en masse les champs d'un formulaire voisin.
Si vous ne procédez pas par import, fixez la valeur des champs et nommez les :
- Les champs : titre, sous titre, et commentaire, ne sont pas de champs de réponse, ils servent à apporter des compléments d'information sur les formulaires.
- Le champ nouvelle page permet de créer des formulaires multi-pages. Vous pouvez lui donner un nom ou la numéroter, ces informations apparaissent dans le fil de suivi lors de la complétion par l'utilisateur. Le champ nouvelle page permet également de gérer la notion de condition, on peut par exemple, dans le cas d'une autorisation de stationnement pour un déménagement ne pas redemander l'adresse du déménagement si elle est identique à l'adresse du demandeur (dans le cas d'une sortie).
- Le champ commentaire, en particulier, permet de préciser le caractère obligatoire des réponses sur certaines question, matérialisé par un carré rouge, mais aussi tout type d'information utiles, en revanche, il n'a pas fonction à servir d'aide directe à la complétion d'une question (traitée par ailleurs).
- Les autres champs fixent la nature de la réponse que l'on souhaite voir apportée : date, adresse mail, bloc de texte, ligne de texte (qui sert également pour les chiffres), case à cocher, liste, liste à choix fermé, élements classés, upload de fichier.
Définition des champs
Outre la définition des champs, vous pouvez depuis cet écran modifier leur ordre par «drag&drop».
Options communes
Tous les types de champs disposent d'une série d'options communes:
- Obligatoire: il s'agit d'une case à cocher qui fixe le caractère obligatoire d'une réponse pour l'utilisateur, si la case n'est pas cochée, la réponse à la question est optionnelle.
Remarque : permet d'apporter une aide au répondant, dans le cas d'un champ adresse électronique, par exemple: francis.kuntz@wanagro.com.
- Affichage dans les Listings : il n'est pas forcément pertinent que tous les champs figurent dans le listing de back-office d'autant que dans le cas de formulaires comprenant beaucoup de champs, le listing n'est pas très lisible si tous sont affichés. Cette option permet donc, par le biais d'une case à cocher de fixer, ou non, l'affichage du champ concerné dans le listing back-office.
- Classe supplémentaire pour les styles CSS : permet, coté utilisateur, d'afficher l'étiquette du champ comme un titre ou à la suite d'un autre champ par le biais des mots clefs "title" et "inline".
Champ date
Il dispose coté utilisateur d'une applet permettant de compléter la date choisie.
Les dates admises actuellement vont du 01/01/1800 au 31/12/2099, un contrôle est opéré.
Champ adresse électronique
Le répondant devra mentionner une adresse mail, la vérification s'effectue sur l'arobase.
Champ bloc de texte
La taille du bloc de texte est modifiable, par défaut le nombre de caractères par ligne est fixé à 20 et le nombre de lignes à 3. Pour un affichage optimal coté utilisateur, 70 caractères par ligne constitue un bon compromis. 10 lignes par bloc permet une réponse déjà longue, sachant que si l'utilisateur dépasse, il aura un ascenseur.
Champ ligne de texte
Par défaut le nombre de caractères d'une ligne est fixé à 20, Le champ texte permet, de base une réponse comprenant des lettres et des chiffres, si la réponse ne doit comporter que des chiffres, il convient d'appliquer une règle dans le champ regex prévu à cet effet. Vous devez utiliser des expressions régulières en Python, pour les vérifier, vous pouvez vous servir du logiciel Kodos.
Exemple de règles :
- Tél. 10 chiffres : \d{10}$
- Tél. 10 chiffres avec possibilité d'espace entre les groupes de 2 chiffres : \d{2}\D*\d{2}\D*\d{2}\D*\d{2}\D*\d{2}$
- Code postal : 5 chiffres \d{5}$
- Valeur numérique : \d+$
La valeur Liberty, si elle est complétée autorise le pré-remplissage. Si vous souhaitez utiliser cette fonction, il est indispensable que vous mettiez en place un fournisseur de service ID-WSF par exemple candle. La case explicite, si elle est cochée, demande un consentement supplémentaire à l'utilisateur pour la complétion.
Champ liste
Grâce à « éléments », il vous faut fixer possibilités de réponse à votre liste, ajoutez autant d'éléments que nécessaire.
Vous pouvez choisir d'afficher les réponses sous forme de bouton radio à l'aide de la case à cocher prévue à cet effet.
Champ case à cocher
Il s'agit d'un d'une case à cocher permettant par exemple d'obtenir le consentement du demandeur.
Champ texte (choix fermé)
Permet de répondre de manière multiple à des éléments de texte fixés, par exemple les jours de la semaine pour lesquels on souhaite manger au restaurant d'entreprise.
Champ éléments classés
Permet de définir des éléments qui vont ensuite être classés par l'utilisateur par ordre de préférence.
L'utilisation de ce champ permet de supporter des consultations de type condorcet.
Champs d'information
Champ Titre
Il permet d'insérer un titre dans le formulaire
Champ Sous-titre
Il permet d'insérer un sous-titre dans le formulaire
Champ Commentaire
Il permet d'insérer un commentaire dans le formulaire
Champ Nouvelle page
Il permet de spécifier qu'une nouvelle page doit commencer à cet endroit. À noter qu'un formulaire multi-pages doit obligatoirement commencer par un champ de ce type.
Modifier les options
Interface récapitulative des formulaires disponibles
Éditer
Le bouton prévu à cet effet permet d'éditer le formulaire. Vous pourrez ensuite modifier le cas échéant, les types de champ du formulaire concerné, ainsi que les rôles, catégories, destinataire et d'activer/désactiver le formulaire.
Modifier
Grâce à ce bouton, vous pourrez ensuite modifier les paramètres des champs d'un formulaire ainsi que les déplacer par « drag & drop ».
Dupliquer
Ce bouton permet la duplication d'un formulaire, pour éviter d'avoir à faire une création ex-nihilo si vous souhaiter créer un formulaire ayant une structuration proche d'un existant.
Supprimer
Vous pourrez ici supprimer un formulaire. Afin d'éviter les suppressions brutales ou les erreurs de manipulation, une confirmation de la suppression est demandée.
Workflows
Workflow de base
De base w.c.s. dispose d'un workflow qui permet d'envoyer une notification au destinataire, puis des notifications au demandeur à chaque étape d'avancement de sa demande. Il est supporte des paramétrages, tant au niveau des options du formulaire concerné (permettre la discussion avec le demandeur, envoi de courriels de notification détaillés) qu'au niveau des courriels (depuis courriels dans paramètres).
Création de workflow
Depuis le menu, vous pouvez créer de nouveaux workflows.
Cliquez sur « nouveau workfow »
Donnez un nom au workflow, puis validez
Création des statuts
À ce stade vous arrivez à l'étape de création des statuts possibles, créez les un par un, par exemple :
- Nouveau
- Approuvé par le chef de service
- Refusé
- Accepté par la direction
Définition des statuts
Vous disposez maintenant d'une page récapitulative des statuts de votre workflow. L'ordre des Statuts peut être modifié par « drag & drop ».
En face de chacun des statuts, vous disposez d'une icône permettant de le modifier ou de le supprimer (il y a une demande de confirmation sur la suppression).
Pour le premier statut cliquez sur « modifier », vous diposez alors d'une liste d'action disponibles :
- Commentable
- Choix
- Sauter à la soumission
- Envoyer un mail
- Affichage d'un message
- Redirection vers la page de statut
- Éditable
Commentable
Cette fonction permet que le formulaire soit commentable, il vous suffit ensuite de définir qui aura les droits pour commenter le formulaire : expéditeur, destinataire, etc.
Choix
Vous pouvez par ce biais définir les actions possibles pour la personne en charge du traitement du formulaire : accepté, refusé, transmis, etc.
Il vous faut définir la valeur de l'étiquette qui s'affichera sous forme de bouton pour la personne en charge du traitement, puis le statut associé, enfin les rôles pouvant se prononcer.
Sauter à la soumission
Cette fonction permet de basculer automatiquement à un statut une fois une action réalisée.
Envoyer un mail
Vous pouvez créer des mails personnalisés et de notification en ayant à votre disposition des variables permettant de suivre l'évolution du formulaire :
- url
- before
- after
- evolution
- details
Dans le corps de votre message les variables doivent être mises entre crochets, exemple [details].
Affichage d'un message
Cette fonction permet d'afficher un message au demandeur lorsqu'il a validé sa demande. Dans le texte du message vous pouvez introduire du code html.
Redirection vers la page de statut
Permet à l'étape de récapitulatif du formulaire d'afficher directement la page de statut du formulaire. On peut également s'en servir pour afficher la page de statut du back-office, mais pour pouvoir la visualiser, il faut bien entendu que l'utilisateur en ait les droits.
Éditable
Cette fonction permet au demandeur d'éditer, donc de modifier un formulaire une fois validé. Elle peut servir par exemple en cas de consultation à pouvoir changer d'avis dans le temps.
Interface récapitulative des workflows disponibles
Depuis cette inerface, vous pouvez créer de nouveaux worflows en cliquant sur le lien approprié. Vous disposez également d'un récapitulatifs de tous les worflows créés avec des possibilités d'actions sur chacun par le biais des icônes en fin de ligne.
Modifier
Grâce à ce bouton, vous pourrez ensuite modifier les paramètrages du worflow concerné.
Supprimer
Vous pourrez ici supprimer un worflow. Afin d'éviter les suppressions brutales ou les erreurs de manipulation, une confirmation de la suppression est demandée.
Dupliquer
Ce bouton permet la duplication d'un worflow, pour éviter d'avoir à faire une création ex-nihilo si vous souhaiter en créer un ayant une structuration proche d'un existant.
Logs
S'il est activé, le système de logs, permet d'analyser le comportement des répondants.
Paramètres
Outre la partie propre à la gestion de l'identification, cet élément du menu permet de mettre en place les éléments généraux de l'application, tels que le nom du site, l'activation des logs, le thème pour les pages publiques, les courriels, etc.
Paramètres de personnalisation
Un certain nombre d'options sont disponibles pour personnaliser Authentic. Elles sont accessibles sur l'interface d'administration dans l'onglet « Paramètres » sous la rubrique « personnalisation ».
Langue
En suivant le lien « Langue » vous pouvez définir la langue qui sera utilisée.
Thèmes
En suivant le lien « Thème », vous pouvez choisir entre différents thèmes graphiques qui vont s'appliquer à l'interface utilisateur. L'interface d'administration, elle, demeure invariable et correspond au thème « Défault ». Vous trouverez plus de détail dans la partie paramètres avancés, section Personnaliser le thème.
Squelettes
En suivant le lien « Squelette », vous accédez au modèle utilisé pour l'affichage des pages et vous pouvez le modifier. Le bouton « Restaurer le squelette par défaut » permet de rétablir le squelette original. La syntaxe des squelettes est détaillée dans la partie paramètres avancés, section Personnaliser le squelette.
Courriels
En suivant le lien « options générales », vous pouvez définir trois choses :
- le serveur SMTP utilisé par Authentic pour l'envoi des mail ;
- l'émetteur des courriels (qui apparaîtra dans le champ from des messages envoyés aux utilisateurs) ;
- adresse pour le « Reply-To » (si vous souhaitez que l'adresse à laquelle les utilisateurs vont répondre soit différente de l'adresse de l'émetteur).
- la gestion des rebonds.
Les autres liens permettent de personnaliser les courriels envoyés aux usagers.
Paramétrage avancé
Il est possible de personnaliser totalement les pages publiques de w.c.s. en jouant avec les paramètres suivants : Thème, squelette, textes.
Personnaliser le thème
Le thème établit le style général des pages publiques. Un certain nombre de thèmes sont disponibles et définissent (grâce à l'utilisation de feuilles de style) les éléments de base de la mise en forme des pages publiques. Vous pouvez définir votre propre thème (avec votre bandeau, votre logo...) si vous avez les compétences recquises en matières de CSS.
Un thème se compose au minimum de deux fichiers : desc.xml et authentic.css. Le ficher desc.xml est un fichier XML comprenant quelques informations de bases sur le thème : son nom, sa version, son étiquette, sa description, son auteur. La feuille de style définit les différentes propriétés appliquées aux éléments de chaque page. Ces deux fichiers doivent être placés dans un répertoire unique et situé sous /usr/share/authentic/themes/. Une fois le répertoire et les deux fichiers créés le thème est disponible dans l'interface d'administration, vous pouvez l'appliquer.
Personnaliser le squelette
Le squelette définit l'agencement de toutes les pages publiques à l'intérieur d'un thème particulier. C'est-à-dire qu'au sein du thème choisi, il est encore possible d'agir sur la présentation de toutes les pages publiques en modifiant le squelette utilisé. Les squelettes sont de simples fichiers texte qui contiennent (entre autres choses) un certain nombre de variables, écrites entre parenthèses carrés. Ces variables sont remplacés dans la page publique, par la valeur qui leur a été attribuée. Voici les variables à connaître pour faire des modifications dans le squelette :
title : titre de la page affiché en haut de celle-ci ;
site_name : nom du site ;
page_title : le titre reprenant nom du site et titre de la page, a vocation à être affiché dans la barre de titre, via une balise <title> ;
css : le nom du fichier contenant la feuille de style ;
script : javascripts utilisés par Authentic pour certaines fonctionnalités comme le tri des listes ;
onload : instructions en javascript déclenchées lors d'un évènement. Cette variable a vocation à être placée comme valeur de l'attribut onload dans la balise <body> ;
breadcrumb : fil d'Ariane ;
body : contenu principal de la page, habituellement situé entre le titre et le pied de page ;
Il est possible de tester qu'une variable est remplie en utilisant la syntaxe suivante : [if-any nom-de-la-variable]...[end]
Textes
Accessible depuis la page des paramètres, permet de personnaliser un certain nombre de texte présentés à l'usager dans des situations diverses.
Liberty Alliance
Création clés publiques et privées
Si vous ne possédez pas de clés au format pem, il vous faut en créer car elles seront nécessaire pour configurer wcs comme fournisseur de service. Pour créer un couple clé publique/clé privée avec OpenSSL, utilisez ces commandes
openssl genrsa -out nom-de-la-clé-privé.pem 2048
Cette commande crée la clé privée sous la forme d'un fichier appelé nom-de-la-clé-privé.pem.
openssl rsa -in nom-de-la-clé-privé-key.pem -pubout -out nom-de-la-clé-publique.pem
Cette commande extrait la clé publique de la clé privée sous la forme d'un fichier appelé nom-de-la-clé-publique.pem.
Configuration de base du fournisseur de service
Allez sur l'interface d'administration de w.c.s. http://wcs.example.com/admin.
Cliquez sur l'onglet paramètres puis sur le lien « fournisseur de service ».
Les deux premiers champs sont remplis automatiquement, ne cherchez pas à les modifier à moins de savoir réellement ce que vous faites.
Champs :
- Identifiant du fournisseur (un identifiant qui prend nécessairement la forme d'une URL) ;
URL de la racine (toutes les URL nécessaires à Liberty Alliance se trouvent sur cette racine) ;
- Nom de l'organisation (nom de l'organisation qui gère le fournisseur
d'identité) ;
- Clé privée (clé privée au format pem) ;
- Clé publique (clé publique au format pem) ;
Domaine commun, pour « Identity Provider Introduction » (L'identity provider introduction est un mécanisme Liberty Alliance permettant à un fournisseur d'identité, pour un nom de domaine particulier, de générer un cookie sur la machine de l'utilisateur. C'est utile lorsqu'il y a plusieurs fournisseurs d'identités associés à un fournisseur de service : dans le cookie on associe les fournisseurs de service d'un domaine, au fournisseur d'identité qui a délivré le cookie. Cela permet de stipuler au fournisseur de service : « cet utilisateur utilise le fournisseur d'identité du domaine ».).
Une fois tous ces champs dûment remplis, cliquez sur le bouton valider.
Enregistrement du fichier de metadata
Dans l'interface d'administration de wcs vous pouvez récupérer le fichier de metadata. Cela sera utile par la suite lorsqu'il s'agira de déclarer wcs fournisseur de service sur un fournisseur d'identité. Procédez comme suit :
- cliquez sur l'onglet paramètres ;
- vous voyez un lien « Metadata du fournisseur de service ». Faites un clic
droit et « enregistrer la cible du lien sous » ;
- choisissez le nom que vous donnez à ce fichier (par exemple metadata-wcs.xml) et l'endroit ou vous le sauvegardez.
Déclarer un fournisseur d'identité
Sur l'interface d'administration de w.c.s., cliquez sur l'onglet paramètres, puis sur le lien « fournisseurs d'identités ». Vous pouvez alors choisir de déclarer un fournisseur d'identité en fournissant l'URL de ses metadta ou bien cliquer sur « nouveau ». Lorsque vous cliquez sur nouveau plusieurs champs doivent être complétés.
Compléter les champs suivants :
- Metadata (le fichier de metadata du fournisseur d'identité)
- Clé publique (la clé publique du fournisseur d'identité)
- Chaîne de certification (certificat contenant toute la chaîne d'authentification jusqu'au root CA)
Licences
w.c.s. est publié sous la licence GNU GPL.