TROMBI est une application web permettant de générer un trombinoscope à partir d'un annuaire LDAP. Elle permet aussi d'afficher l'agenda de chaque personne du trombinoscope en se connectant à un agenda compatible iCalendar/CALDAV.
Inspiré de l'outil https://github.com/noelmartinon/webagenda-viewer.
- Liste des utilisateurs présents dans l'annuaire
- Regroupement des utilisateurs par Service (Department) de l'annuaire
- Affichage d'une fiche par utilisateur avec sa photo, son nom, sa description, son email, ses numéros de téléphone et son agenda (si son email est renseigné dans l'annuaire LDAP)
- Possibilité d'ajouter ou modifier les photos des utilisateurs (stockés sur le serveur applicatif)
- OS : Debian 11 ou 12
- Backend : Python (3.8 minimum) / Flask
- Frontend : VueJS
-
Télécharger le zip de la version souhaitée (X.Y.Z) dans le répertoire
/homede votre utilisateur. Dézippez le et renommez le "trombi"cd /home/`whoami` wget https://github.com/PnEcrins/Trombi/archive/X.Y.Z.zip unzip X.Y.Z.zip mv Trombi-X.Y.Z trombi rm X.Y.Z.zip sudo apt-get install -y python3-pip -
Désampler les fichiers de configuration et les modifier :
cp settings.sample.ini settings.ini cp ldaptrombipy/config.sample.py ldaptrombipy/config.py cp ldaptrombipy/static/app/dist/config.sample.json ldaptrombipy/static/app/dist/config.jsonLe fichier
ldaptrombipy/config.pycontient la connexion au LDAP et au Caldav. Il permet aussi d'exclure des utilisateurs ou des groupes d'utilisateurs. Le fichierldaptrombipy/static/app/public/config.jsonest utilisé par le frontend pour connaitre l'API et définir si les utilisateurs peuvent ajouter ou modifier eux-mêmes les photos -
Lancer le script d'installation
install_app.sh -
Réaliser une configuration Apache : Créer un fichier
/etc/apache2/sites-available/trombi.confet copier le contenu du fichier https://github.com/PnEcrins/Trombi/blob/main/cong_apache.template (en adaptant les chemins). -
Activer la configuration et redémarrer Apache :
sudo a2enmod proxy sudo a2enmod proxy_http sudo a2ensite trombi sudo apachectl restart
Le fichier config.py permet de renseigner les paramètre de connexion au LDAP et au CALDAV.
Les paramètre suivants permettent de configurer les filtres sur le LDAP :
BASE_QUERYdéfinit le DIT à partir duquel la recherche débuteSEARCH_FILTERSdéfinit les filtres par défaut sur toutes les requêtes au LDAP. C'est un dictionnaire où la clé est l'élément sur lequel le filtre doit s'effectuer, et la valeur est la celle du filtre. Il est renseigné par défaut par{"objectClass": "*"}, qui renvoie donc tous les éléments du LDAP. Pour ne renvoyer que les éléments qui ont unsurname, renseignez :{"sn": "*"}. Les filtres de non égalité ne sont pas implémentés.
Les filtres LDAP n'étant pas très aisé, le paramètre EXCLUDED_GROUPS permet d'établir une liste des éléments à exclure. L'exclusion est basée sur le DN (ou distinguishedName) en enlevant les préfixes (CN, OU ...). Exemple, pour le DN suivants : CN=Catherine Bidule,OU=Utilisateurs Partis,OU=ECRINS,DC=PNE,DC=dom, mettre EXCLUDED_GROUPS = ['Utilisateurs Partis'] pour exclure cette personne
- Créer un fichier
.envà la dans le répertoireldaptrombipyet y mettre les variables suivantes :FLASK_RUN_PORT=5004 FLASK_ENV=development - Activer le virtualenv :
source venv/bin/activate - Lancer le backend :
flask run
Le frontend utilise vue-cli comme structure d'application, ainsi que ses outils de build.
Depuis ldaptrombipy/static:
- Installer nvm : https://github.com/nvm-sh/nvm
- Installer node et npm :
nvm install - Installer les dépendances :
npm install
Lancer le frontend npm run serve
Voir le fichier d'exemple : conf_apache.template
- OpenSource - GPLv3
- Auteur : Théo Lechémia / Parc national des Écrins / 2021-2023


