http://geonature.fr/img/logo-pne.jpg

Bienvenue dans la doc de UsersHub

INSTALLATION

Cette documentation décrit l’installation indépendante de UsersHub. Il est aussi possible de réaliser l’installation avec le script automatisé d’installation globale de GeoNature (http://docs.geonature.fr/installation.html#installation-globale).

Prérequis

Pour installer UsersHub, il vous faut un serveur avec :

  • Debian 10 ou 11
  • 1 Go de RAM
  • 5 Go d’espace disque

Création d’un utilisateur

Vous devez disposer d’un utilisateur Linux pour faire tourner UsersHub (nommé synthese dans notre exemple). L’utilisateur doit appartenir au groupe sudo. Le répertoire de cet utilisateur synthese doit être dans /home/synthese. Si vous souhaitez utiliser un autre utilisateur Linux, vous devrez adapter les lignes de commande proposées dans cette documentation.

$ adduser --home /home/synthese synthese
$ adduser synthese sudo
Note:Pour la suite de l’installation, veuillez utiliser l’utilisateur Linux créé précedemment (synthese dans l’exemple), et non l’utilisateur root.

Installation des dépendances requises

Installez les dépendances suivantes :

$ sudo apt install -y python3-venv libpq-dev postgresql apache2

Installer NVM (Node version manager), Node.js et npm :

$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

Fermer la console et la réouvrir pour que l’environnement npm soit pris en compte.

Configuration de PostgresQL

Créer un utilisateur PostgreSQL :

$ sudo -u postgres psql -c "CREATE ROLE geonatuser WITH LOGIN PASSWORD 'monpassachanger';"

Téléchargement de UsersHub

Récupérer le zip de l’application sur le Github du projet (X.Y.Z à remplacer par la version souhaitée de UsersHub)

$ cd /home/synthese
$ wget https://github.com/PnX-SI/UsersHub/archive/X.Y.Z.zip
$ unzip X.Y.Z.zip
$ mv UsersHub-X.Y.Z usershub

Configuration de UsersHub

Créer et mettre à jour le fichier config/settings.ini :

$ cd ~/usershub
$ cp config/settings.ini.sample config/settings.ini
$ nano config/settings.ini

Renseigner le nom de la base de données, l’utilisateur PostgreSQL et son mot de passe. Il est possible mais non conseillé de laisser les valeurs proposées par défaut.

ATTENTION : Les valeurs renseignées dans ce fichier sont utilisées par le script d’installation de la base de données install_db.sh. L’utilisateurs PostgreSQL doit être en concordance avec celui créé lors de la dernière étape de l’installation du serveur (Création d'un utilisateur PostgreSQL).

Note:Si vous installez UsersHub dans le cadre de la gestion des utilisateurs de GeoNature, il est conseillé d’utiliser les mêmes utilisateurs PostgreSQL que pour GeoNature.

Configuration de l’application

  • Installation de l’application :
cd ~/usershub
./install_app.sh

Création et installation de la base de données

  • Création de la base de données et chargement des données initiales :
cd ~/usershub
./install_db.sh
  • Si vous souhaitez les données utilisateurs d’exemple, en particulier l’utilisateur admin (mot de passe : admin), executez :
cd ~/usershub
source venv/bin/activate
flask db upgrade usershub-samples@head

Configuration Apache

Activez les modules mod_proxy et mod_proxy_http, et redémarrez Apache :

$ sudo a2enmod proxy proxy_http
$ sudo systemctl restart apache

UsersHub peut être classiquement déployé sur 2 types d’URL distincts :

Installation de UsersHub sur un préfixe

Le processus d’installation de l’application créer le fichier de configuration Apache /etc/apache2/conf-available/usershub.conf permettant de servir UsersHub sur le préfixe /usershub/. Pour activer ce fichier de configuration, exécutez les commandes suivantes :

sudo a2enconf usershub
sudo service apache2 reload

Installation de UsersHub sur un sous-domaine

Dans le cas où UsersHub est installé sur un sous-domaine et non sur un préfixe (c’est-à-dire https://usershub.mon-domaine.fr), veuillez ajouter dans le fichier de configuration de votre virtualhost (e.g. /etc/apache2/sites-enabled/usershub.conf) la section suivante :

<Location />
    ProxyPass http://127.0.0.1:5001/
    ProxyPassReverse http://127.0.0.1:5001/
</Location>

Configuration de l’application

La configuration de UsersHub est réalisée dans le fichier config/config.py.

Si vous modifiez les paramètres dans ce fichier, vous devez recharger l’application avec la commande systemctl reload usershub.

Mise à jour de l’application

  • Télécharger la dernière version de UsersHub
cd
wget https://github.com/PnX-SI/UsersHub/archive/X.Y.Z.zip
unzip X.Y.Z.zip
rm X.Y.Z.zip
  • Renommer l’ancien répertoire de l’application, ainsi que le nouveau :
mv /home/`whoami`/usershub/ /home/`whoami`/usershub_old/
mv UsersHub-X.Y.Z /home/`whoami`/usershub/
  • Récupérer les fichiers de configuration de la version précedente :
cp /home/`whoami`/usershub_old/config/config.py /home/`whoami`/usershub/config/config.py
cp /home/`whoami`/usershub_old/config/settings.ini /home/`whoami`/usershub/config/settings.ini
  • Lancer le script d’installation de l’application (attention si vous avez modifiez certains paramètres dans le fichier config.py tels que les paramètres de connexion à la base de données, ils seront écrasés par les paramètres présent dans le fichier settings.ini) :
cd usershub
./install_app.sh
  • Si vous utilisez UsersHub tout seul (sans GeoNature), mettre à jour sa base de données :
cd usershub
source venv/bin/activate
flask db upgrade usershub@head
  • Suivre les éventuelles notes de version spécifiques à chaque version

MIGRATION V1 > V2

Procédure de mise à jour de UsersHub version 1 vers la version 2.0.0

  • Télécharger la dernière version de UsersHub

    cd
    wget https://github.com/PnEcrins/UsersHub/archive/X.Y.Z.zip
    unzip X.Y.Z.zip
    

Renommer l’ancien repertoire de l’application, ainsi que le nouveau :

mv /home/`whoami`/usershub/ /home/`whoami`/usershub_old/
mv UsersHub-X.Y.Z /home/`whoami`/usershub/
  • Créer et mettre à jour le fichier config/settings.ini.

Remplir uniquement la partie “PostgreSQL settings” et “Application settings”, avec les paramètres de connexion de la base de données contenant votre schéma utilisateurs. Dans notre cas, il s’agit de la base de données de GeoNature.

cd usershub
cp config/settings.ini.sample config/settings.ini
nano config/settings.ini

Exemple :

# Effacer la base de donnée existante lors de l'installation
drop_apps_db=false
# Host de la base de données de l'application
db_host=localhost
# Port du serveur PostgreSQL
pg_port=5432
# Nom de la base de données de l'application
db_name=geonature2db
# Nom de l'utilisateur propriétaire de la BDD de l'application
user_pg=geonatadmin
# User propriétaire de la BDD de l'application
user_pg_pass=monpassachanger
# Intégrer les données minimales (Applications et tags)
insert_minimal_data=true
# Intégrer les données exemple (Role, groupe, organismes et correspondances)
insert_sample_data=true
# URL de l'application
url_application=http://test.ecrins-parcnational.net/usershub

Passer le script de migration data/update_1.3.3to2.0.0.sql

Lancer le script d’installation de l’application :

./install_app.sh
  • Configuration Apache

Supprimer le contenu du fichier /etc/apache2/sites-enabled/usershub.conf et le remplacer par les lignes suivantes :

<Location /usershub>
    ProxyPass  http://localhost:5001/
    ProxyPassReverse  http://localhost:5001/
</Location>

Redémarer Apache

sudo service apache2 restart

FAQ

Comment utiliser UsersHub ?

  • Commencer par créer des organismes et des groupes
  • Puis créer des utilisateurs
  • Les ajouter à des groupes
  • Eventuellement ajouter des groupes (ou utilisateurs) dans les différentes listes
  • Définir les profils disponibles pour chaque application. Créer de nouveaux profils si nécessaire
  • Associer des profils à des groupes dans chaque application

Il est conseillé de privilégier l’association de listes et profils à des groupes plutôt qu’à des utilisateurs.

http://geonature.fr/img/uhv2-screenshot.jpg

Quelles sont les applications compatibles et leurs profils disponibles ?

UsersHub :

  • Référent (3) = Gestion des utilisateurs de son organisme uniquement (non implémenté actuellement)
  • Administrateur (6) = Tous les droits

TaxHub :

  • Rédacteur (2) = Gestion des médias uniquement
  • Référent (3) = Idem 2 + Gestion des attributs de GeoNature-atlas
  • Modérateur (4) = Idem 3 + Possibilité d’ajouter des taxons dans bib_noms, de les mettre dans des listes et de renseigner tous leurs attributs (notamment ceux utilisés par GeoNature)
  • Administrateur (6) = Tous les droits

GeoNature V1 :

  • 2 = Rédacteurs qui peuvent saisir dans tous les protocoles, modifier leurs propres données et exporter les données de leur organisme
  • 6 = Administrateurs qui peuvent modifier toutes les données

GeoNature V2 :

  • Lecteur (1) = Permet de donner accès à un groupe ou utilisateur à GeoNature. Les permissions applicatives sont ensuite gérées au niveau de GeoNature (CRUVED)

Geotrek (https://github.com/GeotrekCE/Geotrek-admin) :

Nécessite d’activer l’authentification externe (https://geotrek.readthedocs.io/en/master/advanced-configuration.html#external-authent) et de créer une vue dans la BDD de UsersHub qui renvoie les informations à plat comme indiqué dans la documentation de Geotrek (https://github.com/PnX-SI/Ressources-techniques/blob/master/Geotrek/droits-usershub.sql).

  • 1 = Lecture et export dans tous les modules
  • 2 = Rédacteur (création, modification, suppression) dans les modules Sentiers, Statuts, Aménagements, Signalétique, Interventions et Chantiers) + Lecture et export dans tous les modules
  • 3 = Référent Sentiers pouvant en plus créer, modifier et supprimer dans le module Tronçons. Accès à l’AdminSite pour gérer les valeurs des listes déroulantes des modules de gestion.
  • 4 = Référent Communication pouvant lire et exporter dans tous les modules. Création, modification et suppression dans les modules Itinéraires, POIs, Contenus et Evenements touristiques, Services. Accès à l’AdminSite pour gérer les valeurs des listes déroulantes des modules de gestion.
  • 6 = Administrateurs pouvant créer, modifier et supprimer dans tous les modules.

Les autorisations relatives à chaque niveau de droit sont modifiables, groupe par groupe et objet par objet dans l’AdminSite de Geotrek.

Police (https://github.com/PnEcrins/Police) :

  • 1 = Lecture uniquement
  • 2 = Rédacteurs pouvant créer des interventions et modifier leurs interventions
  • 3 = Référents pouvant modifier, supprimer ou exporter toutes les interventions et renseigner les informations sur les suites données aux interventions
  • 6 = Administrateurs. Idem au niveau 3.

PatBati (https://github.com/PnEcrins/PatBati) :

  • 1 = Lecture
  • 6 = Création, modification, suppression

AUTEURS

Parc national des Ecrins

  • Gil Deluermoz
  • Camille Monchicourt
  • Gabin Laumond
http://geonature.fr/img/logo-pne.jpg

Parc national des Cevennes

  • Amandine Sahl
http://geonature.fr/img/logo-pnc.jpg

Parc national de la Vanoise

  • Claire Lagaye

CHANGELOG

2.3.4 (2023-06-27)

🐛 Corrections

  • Correction de la route de redirection après login ou un logout pour éviter les erreurs de redirection lorsque l’URL de l’application n’est pas située à la racine (#173 / #174 - par @joelclems)
  • Création de compte : affichage d’un message explicite lorsque le token d’un utlisateur temporaire n’est pas trouvé quand un administrateur cherche à le valider (#177 / https://github.com/PnX-SI/GeoNature/issues/862 - par @joelclems)
  • Correction de l’affichage de la fiche d’un utilisateur si celui-ci n’a pas d’organisme (#125 - par @jpm-cbna)
  • Correction de la modification du mot de passe d’un utilisateur qui n’a pas de prénom ou de nom (#107 - par @jpm-cbna)
  • Meilleure portabilité des scripts dans les différents systèmes Unix (#176 - par @MathRdt)

2.3.3 (2023-02-16)

🚀 Nouveautés

  • Docker : l’image est construite avec la version des modules référencés par les sous-modules Git

🐛 Corrections

  • Correction de l’affichage des rôles associés à une liste (#165)
  • Correction de la route permettant la modification du mot de passe (https://github.com/PnX-SI/GeoNature/issues/2288)
  • Mise à jour de UsersHub-authentification-module en version corrective 1.6.2

2.3.2 (2022-11-23)

🚀 Nouveautés

  • Ajout d’un Dockerfile et publication automatique des images de celui-ci par Github Action
  • Ajout d’un fichier Docker Compose permettant de lancer UsersHub et PostgreSQL
  • Support de la variable d’environnement USERSHUB_SETTINGS pour définir le fichier de configuration
  • Ajout du paramètre CODE_APPLICATION (valeur par défaut : UH)
  • Le dossier des fichiers statiques peut être défini avec la variable d’environnement USERSHUB_STATIC_FOLDER

🐛 Corrections

  • Correction du packaging : incorporation des templates, des fichiers Alembic
  • Suppression de la dépendance à PostgreSQL dans le fichier service systemd
  • Déclaration des migrations Alembic dans les entry points

2.3.1 (2022-09-20)

🐛 Corrections

  • Ajout de gunicorn aux requirements
  • Ajout de extend_existing=True sur le modèle CorRoleListe

2.3.0 (2022-09-16)

🚀 Nouveautés

  • Support de Flask 2
    • Mise à jour de UsersHub-authentification-module en version 1.6.0
  • systemd : Ajout d’une dépendance au service postgresql
  • Amélioration de l’affichage des tables
  • Fichiers de log :
    • Les logs sont à présent écrits dans le fichier /var/log/usershub/usershub.log
    • L’outil logrotate est configuré pour assurer la rotation du fichier
    • L’ancien fichier de log /var/log/usershub.log est intouché; vous pouvez le supprimer, ou l’archiver manuellement.

🐛 Corrections

  • Correction d’un import manquant

2.2.2 (2021-12-22)

🐛 Corrections

  • Complément de la documentation Apache pour préciser quand UsersHub est sur un sous-domaine (https://usershub.readthedocs.io/fr/latest/installation.html#installation-de-usershub-sur-un-sous-domaine) (#148)
  • Correction de la configuration quand UsersHub est à la racine d’un sous-domaine (#148)
  • Correction de la génération automatique de la documentation sur Read the Docs (https://usershub.readthedocs.io)
  • Suppression de l’extension Flask-Cors et du paramètre associé (URLS_COR) (#148)
  • Si le fichier config/config.py existe, alors on n’écrase plus ses valeurs à partir de celles du fichier config/settings.ini quand on lance le script install_app.sh, lors d’une mise à jour de UsersHub notamment

⚠️ Notes de version

Si vous mettez à jour UsersHub :

  • Vous pouvez supprimer le paramètre URLS_COR de votre fichier config/config.py car celui-ci n’est plus utilisé

2.2.1 (2021-09-29)

🚀 Nouveautés

  • Le fichier de configuration Apache fourni par UsersHub n’est plus automatiquement activé; il peut l’être manuellement avec la commande a2enconf usershub.
  • Une dépendance Alembic de la branche usershub vers la dernière révision de la branche utilisateurs permet d’obtenir automatiquement la dernière version du schéma utilisateurs avec la commande flask db upgrade usershub@head (tel que fait dans le script install_db.sh).

2.2.0 (2021-09-29)

🚀 Nouveautés

  • Affichage des emails des utilisateurs dans les fiches des groupes (#133)
  • Packaging de l’application UsersHub
  • Passage de supervisor à systemd
    • Les logs de l’application se trouvent désormais dans le répertoire système /var/log/usershub.log
  • Ajout d’un template de configuration Apache
  • Gestion de la base de données et de ses évolutions avec Alembic déplacée dans le sous-module UsersHub-authentification-module
  • Suppression de ID_APP du fichier de configuration (auto-détection depuis la base de données)
  • Mise à jour de UsersHub-authentification-module en version 1.5.3

💻 Développement

  • Ajout de UsersHub-authentification-module en temps que sous-module git

⚠️ Notes de version

Si vous mettez à jour UsersHub :

  • Suppression de supervisor :
    • Vérifier que UsersHub n’est pas lancé par supervisor : sudo supervisorctl stop usershub2
    • Supprimer le fichier de configuration de supervisor sudo rm /etc/supervisor/conf.d/usershub-service.conf
    • Si supervisor n’est plus utilisé par aucun service (répertoire /etc/supervisor/conf.d/ vide), il peut être désinstallé : sudo apt remove supervisor
  • Installer le paquet python3-venv nouvellement nécessaire : sudo apt install python3-venv
  • Suivre la procédure classique de mise à jour (https://usershub.readthedocs.io/fr/latest/installation.html#mise-a-jour-de-l-application)
  • Passage à systemd :
    • Le fichier /etc/systemd/system/usershub.service doit avoir été installé par le script install_app.sh
    • Pour démarrer UsersHub : sudo systemctl start usershub
    • Pour activer UsersHub automatiquement au démarrage : sudo systemctl enable usershub
  • Révision de la configuration Apache :
    • Le script d’installation install_app.sh aura installé le fichier /etc/apache2/conf-available/usershub.conf permettant de servir UsersHub sur le préfixe /usershub.
    • Vous pouvez utiliser ce fichier de configuration soit en l’activant (sudo a2enconf usershub), soit en l’incluant dans la configuration de votre vhost (Include /etc/apache2/conf-available/usershub.conf).
    • Si vous gardez votre propre fichier de configuration et que vous servez UsersHub sur un préfixe (typiquement /usershub), assurez vous que ce préfixe figure bien également à la fin des directives ProxyPass et ProxyPassReverse comme c’est le cas dans le fichier /etc/apache2/conf-available/usershub.conf.
    • Si vous décidez d’utiliser le fichier fourni, pensez à supprimer votre ancienne configuration Apache (sudo a2dissite usershub && sudo rm /etc/apache2/sites-available/usershub.conf).
  • Si vous n’utilisez pas GeoNature, vous devez appliquer les évolutions du schéma utilisateurs depuis UsersHub :
    • Se placer dans le dossier de UsersHub : cd ~/usershub
    • Sourcer le virtualenv de UsersHub : source venv/bin/activate
    • Indiquer à Alembic que vous possédez déjà la version 1.4.7 du schéma utilisateurs, UsersHub 2.1.3 et les données d’exemples : flask db stamp f63a8f44c969
    • Appliquer les révisions du schéma utilisateurs : flask db upgrade utilisateurs@head

2.1.3 (2020-09-29)

🚀 Nouveautés

  • Possibilité de définir une action spécifique à une application, à exécuter après la validation d’un compte utilisateur en attente, renseignée dans le nouveau champs utilisateurs.temp_users.confirmation_url (#115 par @jpm-cbna)
  • Passage du champs bib_organismes.nom_organisme de 100 à 500 caractères
  • Mise à jour des versions des librairies psycopg2 (2.8.5) et sqlalchemy (1.3.19) (par @jpm-cbna)

⚠️ Notes de version

Si vous mettez à jour UsersHub :

2.1.2 (2020-06-17)

🚀 Nouveautés

  • Mise à jour des librairies Javascript (Bootstrap 4.5.0, jQuery 3.5.0)
  • Mise à jour de MarkupSafe de la version 1.0 à 1.1 (#103)
  • Amélioration du template du formulaire de connexion
  • Utilisation du code_application de valeur UH dans la table utilisateurs.t_applications pour l’authentification, au lieu du paramètre ID_APP du fichier config/config.py

🐛 Corrections

  • Correction de l’affichage des fiches « Organisme » (#90)
  • Correction de la documentation d’installation (par @lpofredc)

2.1.1 (2019-02-12)

🐛 Corrections

  • Modification de l’écriture d’une contrainte d’unicité
  • Modification de la méthode d’installation du virtualenv
  • Utilisation de nvm pour installer node et npm (uniformisation avec GeoNature)

⚠️ Notes de version

  • Installez pip3 et virtualenv
sudo apt-get update
sudo apt-get install python3-pip
sudo pip3 install virtualenv==20.0.1

2.1.0 (2019-09-17)

🚀 Nouveautés

  • Ajout d’une API sécurisée de création de comptes utilisateurs depuis des applications tierces (création de roles et d’utilisateurs temporaires à valider, changement de mot de passe et des informations personnelles). Par @joelclems, @amandine-sahl, @jbrieuclp et @TheoLechemia #47
  • Création des tables temp_users et cor_role_token permettant de gérer de manière sécurisée les créations de compte et les changements de mot de passe.
  • Ajout d’une interface de gestion des utilisateurs temporaires
  • Ajout d’un template générique (generic_table.html) pour la génération des tableaux utilisant l’héritage de template (block, extend)
  • Ajout d’un champs champs_addi au format jsonb dans les tables t_roles et temp_users, permettant d’ajouter des informations diverses sur les utilisateurs, notamment lors d’une demande de création de compte depuis une application tierce (droits souhaités, validation d’une charte…)
  • Création d’index sur la table t_roles
  • Possibilité de nommer les attributs des modèles SQLAlchemy différemment des colonnes de la base de données
  • Factorisation de la fonction encrypt_password
  • Mise à jour de Flask (1.0.2 à 1.1.1)

🐛 Corrections

  • Ordonnancement des listes par ordre alphabétique (#81)

⚠️ Notes de version

2.0.3 (2019-02-27)

🚀 Nouveautés

  • Mise en place de logs rotatifs pour éviter de surcharger le serveur

🐛 Corrections

  • Correction de l’enregistrement du formulaire des groupes qui passait automatiquement le champs t_roles.active à false (#71)
  • Redirection de l’utilisateur si il n’a pas les droits suffisants pour accéder à une page
  • Correction du script de migration 1.3.0to1.3.1.sql
  • Correction de conflit d’authentification entre les différentes applications utilisant le sous-module d’authentification (MAJ du sous module en 1.3.2)

⚠️ Notes de version

  • Afin que les logs de l’application (supervisor et gunicorn) soient tous écrits au même endroit, éditez le fichier usershub-service.conf (sudo nano /etc/supervisor/conf.d/usershub-service.conf. A la ligne stdout_logfile, remplacer la ligne existante par : stdout_logfile = /home/<MON_USER>/usershub/var/log/errors_uhv2.log (en remplaçant <MON_USER> par votre utilisateur linux).

  • Vous pouvez également mettre en place un système de logs rotatifs (système permettant d’archiver les fichiers de log afin qu’ils ne surchargent pas le serveur) - conseillé si votre serveur a une capacité disque limitée. Créer le fichier suivant sudo nano /etc/logrotate.d/uhv2 puis copiez les lignes suivantes dans le fichier nouvellement créé (en remplaçant <MON_USER> par votre utilisateur linux)

    /home/<MON_USER>/usershub/var/log/*.log {
    daily
    rotate 8
    size 100M
    create
    compress
    }
    

    Exécutez ensuite la commande sudo logrotate -f /etc/logrotate.conf

  • Suivez la procédure standard de mise à jour de UsersHub : https://usershub.readthedocs.io/fr/latest/installation.html#mise-a-jour-de-l-application

2.0.2 (2019-01-18)

🐛 Corrections

  • Correction de la documentation
  • Correction des versions du sous-module d’authentification

⚠️ Notes de version

2.0.1 (2019-01-18)

🐛 Corrections

⚠️ Notes de version

2.0.0 (2019-01-15)

Refonte complète de l’application en Python / Flask / Bootstrap 4

🚀 Nouveautés

  • Suppression de la notion de droits à 6 niveaux (trop restrictive)
  • Intégration de la notion de profils personalisables pour chaque application
  • Mise en place d’une API pour pouvoir interroger et implémenter UsersHub depuis des applications tiers (#47)
  • Simplification globale du MCD pour déporter la complexité côté metier et se rapprocher d’une application UsersHub type CAS
  • Suppression des tags trop génériques (#28)
  • Suppression du CRUVED, réintegré dans GeoNature (28#issuecomment-440293296)
  • Création de vues assurant la rétrocompatibilité avec d’autres applications utilisant le modèle de la version 1 de UsersHub
  • Création de fiches d’information permettant de faire une synthèse rapide par utilisateur, groupes, organisme ou application
  • Ménage et ajouts de champs dans les tables t_role (suppression de nom_organisme), bib_organimses (ajout url_organisme et url_logo) et t_applications (code_application #54)
  • Automatisation de l’installation et révision du script install_app.sh
  • Contrôle de la cohérence entre les champs pass et pass_plus
  • Possibilité de ne pas utiliser le champs pass (md5) si on ne l’utilise pas pour renforcer la sécurité du contenu
  • Développement de pages d’information par utilisateur, groupe, organisme, liste et application

⚠️ Notes de version

Pour mettre à jour UsersHub depuis la version 1, il s’agit d’une nouvelle installation et d’une migration des données vers le nouveau modèle de BDD.

1.3.3 (2018-10-17)

🐛 Corrections

  • Suppression de cor_role_droit_application inutiles
  • install_app.sh : Suppression de messages portant à confusion

1.3.2 (2018-09-20)

🐛 Corrections

  • Installation BDD : Nettoyage des données insérées et remise à 1 des séquences par défaut
  • Vérification que le mot de passe encrypté en md5 et sha soient cohérents (#34)

2.0.0-beta.1 (2018-06-29)

Refonte totale de l’application en Python, Flask, Jinja, Bootstrap, Jquery. Par @Laumond11u.

http://geonature.fr/img/uhv2-screenshot.png

🚀 Nouveautés

  • Interface de gestion des tags et de leurs types
  • Interface de gestion des CRUVED
  • Fiche rôle permettant d’afficher le détail des groupes, tags et CRUVED d’un rôle (utilisateur ou groupe)
  • Fiche organisme permettant d’afficher le détail des membres et tags d’un organisme
  • Suppression de tables (t_menus, bib_droits, cor_role_menu) et création de vues avec le même nom pour garder la compatibilité des applications basées sur UsersHub v1
  • Table cor_role_droit_application remplacée par cor_role_tag_application
  • Compléments des données minimales (tags, types de tags…)
  • Modification de la vue v_useraction_forall_gn_modules qui retourne le CRUVED d’un utilisateur pour pouvoir aussi récupérer le CRUVED d’un groupe

⚠️ Notes de version

1.3.1 (2018-05-17)

🚀 Nouveautés

  • Préparation dans la BDD d’une future version 1.4.0 (dont les extensions sont utilisées dans le développement de GeoNature2) :
    • Intégration d’un mécanisme générique d’étiquettes (tags) permettant une gestion des droits par actions sur des objets. Ce mécanisme permet aussi d’affecter des étiquettes à des roles, des organismes ou des applications. Il permet également de gérer la notion de portée des actions sur différentes étendue de données (mes données seulement, celles de mon organisme, toutes les données)
    • Intégration d’une hiérarchie entre applications et organismes (id_parent).
    • Pour le moment, ces extensions du modèle ne concernent que la base de données et pas l’interface de l’application.
  • Mise en paramètre du cost de l’algorythme de criptage bcrypt
  • Configuration Apache dans un fichier usershub.conf comme TaxHub et GeoNature-atlas

🐛 Corrections

  • Ajout du pass_plus dans toutes les vues
  • Correction de l’installation (localisation du config.php)
  • Ajout d’une vue manquante et nécessaire au sous-module d’authentification
  • Interdire la création d’utilisateur avec l’organisme 0 (= ALL = tous les organismes) ; Utilisé dans GeoNature2 pour définir des paramètres applicables à tous les organismes.

⚠️ Notes de version

  • Ajouter le paramètre $pass_cost dans le config/config.php et lui donner une valeur éventuellement différente. Plus la valeur est importante, plus le temps de calcul de hashage du mot de passe est important.
  • Exécuter le script https://github.com/PnX-SI/UsersHub/blob/2.1.3/data/update1.3.0to1.3.1.sql
  • Reporter les modifications dans les bases filles.
  • Facultatif : revoir la configuration apache qui est maintenant dans un fichier usershub.conf (voir la doc). Ne pas oublier de supprimer le lien symbolique dans /var/www/html

1.3.0 (2017-12-11)

🚀 Changements

  • Mise en paramètre du port PostgreSQL pour l’installation initiale
  • Intégration d’UUID pour les organismes et les roles afin de permettre des consolidations de bases utilisateurs
  • Intégration d’un mécanisme d’authentification plus solide à base de hachage du mot de pass sur la base de l’algorithme bscript. L’ancien mécanisme encodé en md5 (champ pass) reste utilisable. Attention ceci ne concerne que l’authentification à UsersHub. Pour utiliser le hash dans d’autres applications, il faudra modifier les applications concernées et utiliser le nouveau champ pass_plus à la place du champ pass.
  • Création d’un formulaire permettant aux utilisateurs de mettre à jour leur mot de passe et de générer le nouveau hachage du mot de passe (http://mondomaine.fr/usershub/majpass.php).

⚠️ Notes de version

  • Les modifications de la BDD (ajout champ pass_plus notamment) doivent concerner la BDD principale de UsersHub (BDD mère) mais aussi toutes les BDD filles inscrites dans le fichier dbconnexions.json. Pour cela 2 scripts sont proposés : https://github.com/PnX-SI/UsersHub/blob/2.1.3/data/update_mère_1.2.1to1.3.0.sql et https://github.com/PnX-SI/UsersHub/blob/2.1.3/data/update_filles_1.2.1to1.3.0.sql.
  • Synchroniser les UUID vers les BDD filles. Le script SQL appliqué sur la BDD mère va générer des UUID pour chaque utilisateur et organisme. S’il était appliqué sur les BDD filles, les UUID générés seraient différents de ceux de la BDD mère. Il faut donc les générer une seule fois dans la BDD mère, puis les copier dans les BDD filles. Pour cela, après s’être authentifié dans UsersHub il suffit de lancer le script web/sync_uuid.php : http://mondomaine.fr/usershub/sync_uuid.php. ATTENTION, ce script utilise le fichier dbconnexions.json pour boucler sur les BDD filles, il ne fonctionnera que si vous avez préalablement mis à jour toutes les BDD filles inscrites dans dbconnexions.json.
  • Créer le fichier config/config.php à partir du fichier config/config.php.sample et choisissez le mécanisme d’authentification à UsersHub que vous souhaitez mettre en place, ainsi que la taille minimale des mots de passe du nouveau champs pass_plus. Il est conseillé de conserver le mot de passe pass (encodé en md5) le temps de mettre à jour les mots de passe des utilisateurs de UsersHub.
  • Générer le hash des mots de passe, au moins pour les utilisateurs de UsersHub. Il existe trois manières de le faire :
    • lors de l’authentification de l’utilisateur, le hash du mot de pass qu’il vient de saisir est généré dans le champ pass_plus.
    • en resaisissant le passe des utilisateurs dans le formulaire utilisateur.
    • lors de la création d’un nouvel utilisateur, le hash est également généré (ainsi que le md5).
    • il n’est pas possible de générer le hash du mot de passe des utilisateurs existant à partir du mot de pass enregistré dans le champ pass (encodé en md5). Pour cela, diffusez le formulaire majpass.php qui permet aux utilisateurs de mettre à jour leur mot de passe et de générer le hash (ainsi que de mettre à jour le md5) avec l’adresse : http://mondomaine.fr/usershub/majpass.php

1.2.2 (2017-07-06)

🚀 Changements

  • Correction du script SQL (remplacement de SELECT par PERFORM)
  • Mise à jour du fichier settings.ini.sample pour prendre en compte le port
  • Suppression de la référence au host databases (retour à localhost)

⚠️ Notes de version

  • Les modifications réalisée concerne une première installation, vous n’avez aucune action particulière à réaliser.

1.2.1 (2017-04-11)

🚀 Changements

  • Gestion plus fine des erreurs dans le script SQL de création du schéma utilisateurs, afin de pouvoir éxecuter le script sur une BDD existante
  • Gestion des notices PHP
  • Suppression d’une table inutile (utilisateurs.bib_observateurs)
  • Correction de l’URL du logo du PNE
  • Mise à jour du fichier web/js/settings.js.sample
  • Documentation - Ajout d’une FAQ et mise en forme

⚠️ Notes de version

1.2.0 (2016-11-16)

🚀 Changements

  • Compatibilité avec TaxHub accrue
  • Bugfix
  • Distinction groupe/utilisateurs dans les listes d’utilisateurs.
  • Dépersonnalisation de la page de login et du bandeau.
  • Désactivation de l’autoremplissage par défaut du mail de l’utilisateur. Reste possible mais optionnel.
  • Tri par ordre alphabétiques des listes déroulantes.

1.1.2 (2016-11-02)

🐛 Corrections

  • Prise en compte de TaxHub en tant qu’application à part entière avec ses utilisateurs et leurs droits.

1.1.1 (2016-10-26)

Corrections mineures

1.1.0 (2016-08-31)

🚀 Changements

  • Ajout du port PostgreSQL (port) dans les paramètres de configuration (by Claire Lagaye PnVanoise)

A ajouter dans config/connecter.php et config/dbconnexions.json.

Voir https://github.com/PnEcrins/UsersHub/blob/master/config/connecter.php.sample#L7 et https://github.com/PnEcrins/UsersHub/blob/master/config/dbconnexions.json.sample#L10

1.0.0 (2015-10-13)

  • Première version stabilisée de l’application avec script d’installation automatique.

0.1.0 (2015-01-28)

  • Mise en ligne du projet et de la documentation