Cette application permet à un utilisateur de déclarer et d'imprimer une procuration de vote.
L'application est basée sur le framework Symfony en version 4.4 et nécessite un serveur web avec PHP 7.1+ et MySQL / MariaDB.
L'authentification s'effectue par le biais d'un serveur CAS et la gestion des administrateurs de l'application à l'aide d'une requête LDAP.
- Récupération du code
- Installation des librairies en utilisant Composer
composer install - Configuration de l'environnement
cp .env .env.localpuis édition des paramètres - Création et installation de la base de données
bin/console doctrine:database:createpuisbin/console doctrine:schema:create
Explication des variables de configuration de l'appli (dans .env.local) :
Configuration LDAP
LDAP_URL=ldaps://ldapserver:636
LDAP_BIND_DN="cn=user,ou=foo,dc=bar,dc=fr"
LDAP_BIND_PASSWORD="MySecretPassword"
LDAP_USER_DN="ou=people,dc=bar,dc=fr"Requête LDAP correspondant aux utilisateurs admin de l'application (nous gérons ces accès en utilisant un groupe LDAP). Attention à bien mettre {{username}} qui sera remplacé par le login renvoyé par le serveur CAS
LDAP_ADMIN_QUERY="(&(memberOf=cn=myadmingroup,ou=groups,dc=bar,dc=fr )(uid={{username}}))"Les variables PDF_GENERATOR_URL et THEME
Vous pouvez insérer une feuille de style, du CSS ou même modifier le squelette du HTML généré en créant votre propre fichier de base.
- Copier le répertoire de theme uca (templates/themes/uca) et le renommer du nom de votre theme
- Modifier le fichier base.html.twig avec les changements souhaités
- Editer le fichier
.env.localavec le nom de votre theme dans la variableTHEME - Vider le cache (si vous êtes en environnement de production)
L'application permet à un utilisateur de générer un PDF. A l'Université Clermont Auvergne,
nous avons un web service interne qui permet la génération de PDF à partir d'une requête HTTP
(définie dans la variable PDF_GENERATOR_URL).
Pour définir sa propre implémentation de la génération du PDF, il faut :
- Créer une nouvelle classe qui implémente l'interface
App\Logic\PdfInterface - Coder les fonctions de cette classe avec votre logique de création du template et de génération du PDF
- Décrire cette classe comme étant celle qui est utilisée par
App\Logic\PDFdans le fichierconfig/services.yml(voir https://symfony.com/doc/current/service_container.html#explicitly-configuring-services-and-arguments)