Code Monkey home page Code Monkey logo

usershub's People

Contributors

adrien-pajot avatar amandine-sahl avatar bouttier avatar camillemonchicourt avatar ch-cbna avatar clairelagaye avatar dependabot[bot] avatar gildeluermoz avatar hypsug0 avatar jacquesfize avatar jbrieuclp avatar joelclems avatar jpm-cbna avatar julienrenaudleca avatar laumond11u avatar lpofredc avatar mathieu-roudaut-crea avatar pierre-narcisi avatar theolechemia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

usershub's Issues

UHV2 - Encryptage des MDP

Actuellement UHV2 ne gère que le champs pass_plus en bcrypt.
Il ne gère pas l'ancien MDP pass en MD5 car dans les modèles, la variable pass est déjà existante dans Python.
Néanmoins il est important de continuer à remplir et mettre à jour les 2 champs de MDP pour les applications qui utilisent encore le champs pass en MD5.

UHV2 - Revoir script d'installation

Les scripts install_app.sh et install_db.sh correspondent encore à UHV1.

  • Les revoir pour la V2
  • Les tester
  • Revoir aussi la doc d'installation en fonction

UHV2 - Authentification

  • Utiliser le sous-module https://github.com/PnX-SI/UsersHub-authentification-module pour intégrer l'authentification dans UsersHub V2.
  • Voir la conf TaxHub pour permettre de définir l'encryptage utilisé : https://github.com/PnX-SI/TaxHub/blob/develop/config.py.sample#L24
  • Se baser sur un tag Admin-usershub pour savoir si l'utilisateur a le droit de se connecter à l'application
  • Dans un premier temps, soit on accède à toute l'application, soit on n'y accède pas
  • Bien protéger chaque route
  • Dans un second temps, on pourra imaginer des administrateurs secondaires qui ne peuvent gérer que les utilisateurs et les groupes de leur organisme, sans accéder aux applications, ni aux tags, ni aux autres éléments.

UHV2 - Formulaire Utilisateurs - affichage des groupes (et des listes) -

Dans le formulaire, on peut rattacher un utilisateur à un ou pls groupes.
Actuellement le fonctionnement n'est pas assuré au moins lors d'un update, les groupes de l'utilisateur ne sont pas remplis.
Décider s'il faut permettre l'affectation d'un utilisateur à des groupes depuis le formulaire utilisateurs ou pas (seulement depuis le formulaire groupe). Si oui corriger le fonctionnement.
On peut aussi afficher (en lecture seule) les groupes auxquels un utilisateur appartient.

Même logique pour les listes.

Paramètre fill_md5_pass ?

Ajouter un paramètre fill_md5_pass pour que le mot de passe md5 puisse ne pas être renseigné.
En effet, ceux qui n'ont pas de vieilles applications n'ont pas besoin de ce MDP et ce serait dommage de leur coller ce champs fragile si il n'est pas utilisé.

IDENTIFICATION - page vide avec un utilisateur non administrateur

Si un utilisateur qui n'est pas administrateur tente de se loguer, l'application s'ouvre sur une page vide.
Il faut tester les droits et adapter le comportement de l'application selon les droits nécessaires.
Mise en paramètre des droits min pour ouvrir l'appli ?

SQL data - Voir les séquences

Error sur : PERFORM pg_catalog.setval...

Voir aussi la création des séquences dans le SQL de création où les séquences démarrent à 100000. Héritage PNE ?

SQL de création de la BDD

Séparer le script SQL de création de structure de la BDD et celui d'intégration de données dans la BDD.

Renommer le schema utilisateurs

A voir si on profite de la V2 pour renommer le schéma utilisateurs en ref_users.

Pour garder la compatibilité avec les applications qui utilisaient UH V1, des vues ont été créées (0b7783b).

On pourrait laisser ses vues dans un schéma nommé utilisateurs mais basculer les tables et fonctions dans un schéma ref_users.

Mot de passe dans le formulaire utilisateurs

Tous les utilisateurs n'ont pas forcément un pass. Il y a donc pls chantiers concernant le pass :

  • Selon si l'utilisateur dispose d'un pass ou pas :
    • si c'est le cas : message : Cet utilisateur dispose d'un mot passe. Pour le changer vous pouvez en saisir un nouveau.
    • si ce n'est pas le cas, pas de message ou un message explicite : Cet utilisateur n'a actuellement pas de mot de passe.
  • Si un pass est saisi l'identifiant est obligatoire, sinon il ne l'est pas.
  • prévoir un mécanisme pour supprimer le mot de passe d'un utilisateur qui ne doit plus avoir accès aux applications (si l'identifiant est null alors on supprime le pass ?)

Chemin de migration depuis Usershub 1.2

Salut,

En vue de la migration vers GeoNature V2 et de son module Usershub, disposez vous d'une documentation et d'outillage pour celle-ci (en plus des scripts update1.xt01.y.sql) ?
Pour mémoire nous utilisons actuellement au PNM Usershub 1.2.0 pour la gestion des utilisateurs de l'application autorisation de circulation.

Merci

Meilleur encodage des MDP

Voir PnX-SI/UsersHub-authentification-module#4
On utilise actuellement du md5, il serait préférable de passer en sha256.
A voir si cela impliquerait des modifications seulement dans UsersHub-authentification-module ou aussi dans les applis.
Ce qui est sur c'est que ça entraînerait des modifications dans les applications qui n'utilisent pas UsersHub-authentification-module (Geotrek ?; Police....)

utilisateurs.cor_app_privileges VS utilisateurs.cor_role_tag ?

utilisateurs.cor_app_privileges semble très orientée sur le fonctionnement de GeoNature (un rôle a un tag de type action, associé à un tag de type object (portée), associé à une application (module) mais du coup elle est spécifique ?

Par ailleurs on associe des tags à des role dans utilisateurs.cor_role_tag.

t_roles et champs organisme

Cette table a bien un champs id_organisme qui est mis à jour lors de modification. Par contre elle contient aussi un champs organisme qui fait doublon et n'est pas modifié ors d'un changement sur un utilisateur.
Champs à virer ?

MAJ organisme

Les modifications des organismes depuis le formulaire de UsersHub ne sont pas enregistrés en BDD.
En tout cas pas dans les BDD filles.

UHV2 - Ergonomie

Menu :

  • Caler sur la largeur des listes
  • Organismes après Utilisateurs

Liste utilisateurs (et autres listes) :

  • ID organisme >> Nom organisme avec jointure sur bib_organisme
  • Utiliser les icônes glyphicon ou font-awesome (en rapatriant en local la librairie)
  • Supprimer #
  • Utiliser datatable sur toutes les listes (avec pagination en paramètre)

Ajout utilisateurs (et autres formulaires) :

  • Groupes >> Multiselect
  • Envoyer >> Enregistrer, en bas à droite, en couleur
  • Supprimer "Choix"
  • Identifiant à mettre avec le MDP. Pre-remplir avec prenom.nom
  • Supprimer Description
  • Remarques : textbox
  • Marge entre label et champs

Ajout Groupe :

  • Supprimer identifiant et Remarques
  • Description : textbox

Peupler les groupes

  • Lister les groupes avec les utilisateurs
  • Remplacer image flèche par icon

Liste applications

  • ID parent >> Nom parent (ID parent)
  • None >> Laisser vide
  • Liste des utilisateurs >> Utilisateurs de l'application XXXXX

Liste des tags

  • ID_type >> Type
  • Ne pas afficher les TAGS scope et CRUVED

Ajout tag

  • ID type >> Type

Associer rôle à CRUVED

  • Afficher les CRUVED hérités de groupe quand on clique sur un rôle

UHV2 - Modifier un mdp

Créer un interface spéciale pour modifier le mdp.
Actuellement quand on est en édition d'un utilisateur, ces champs sont masqués

Modifier utilisateur / Ajouter commentaire

Je modifie un utilisateur pour y ajouter un commentaire.
Quand j'enregistre, l'enregistrement tourne en boucle sans terminer "Enregistrement en cours".

Pourtant le champ Commentaire fonctionne bien quand je le saisis au moment de l'ajout d'un utilisateur. Problème uniquement sur la mise à jour ?

Code application

Pour des questions de volatilité de serait bien d'avoir un code application qui soit unique et non modifiable de façon à pouvoir récupérer l'id application qui lui est potentiellement différent d'une application à l'autre.

Renomme cor_app_privilege en cor_cruved ?

Depuis le début ce nom de table m'embrouille.
D'autant plus que dans les tags, les privilèges sont justement les anciens droits (1 à 6). Et ces anciens droits sont gérés dans cor_role_tag_application.

UsersHub V2 - Refonte

Une refonte de UsersHub en V2 est amorcée dans une branche dédiée : https://github.com/PnEcrins/UsersHub/tree/uhv2

Cette refonte vise à :

  • Moderniser UH en basculant sur de nouvelles technologies (Python 3, Flask, Bootstrap, Jinja, SQLAlchemy, Javascript)
  • Intégrer la gestion des tags et du CRUVED (nécessaire à GeoNature V2)

La refonte est réalisée par @Laumond11u

Gestion des droits de l'appli UsersHub

Il est fait en sorte de ne pas pouvoir gérer les droits de UsersHub dans l'interface en l'excluant de la liste des applications : https://github.com/PnEcrins/UsersHub/blob/master/web/get_applications.php#L5

En effet dans utilisateurs.t_applications elle est bien présente avec l'identifiant 1 :

id_application nom_application desc_application
1 application utilisateurs application permettant d'administrer la présente base de données.

Du coup pour ajouter des droits dans UsersHub à un utilisateur ou groupe il faut le faire directement dans la BDD de UsersHub dans la table utilisateurs.cor_role_droit_application.

Par exemple pour donner des droits d'administration au groupe 1004 et à l'utilisateur 12 :

id_role id_droit id_application
1004 6 1
12 6 1

Attention, toute modification faite directement dans usershubdb n'est pas répliquée dans les BDD filles comme geonaturedb car ce sont les modifications faites depuis l'interface de UsersHub qui sont répercutées dans les BDD filles.
Elles sont donc à répliquer à la main dans les BDD filles.

On ne sait plus exactement pourquoi on n'avait fait en sorte que les droits dans l'application UsersHub ne soient pas gérables depuis l'interface.

A revoir dans une future version ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.