Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interface d'inscription #615

Closed
jbrieuclp opened this issue Apr 11, 2019 · 16 comments
Closed

Interface d'inscription #615

jbrieuclp opened this issue Apr 11, 2019 · 16 comments

Comments

@jbrieuclp
Copy link
Contributor

jbrieuclp commented Apr 11, 2019

Bonjour,

Question simple, est-ce qu'une interface de création de compte est dans les tuyaux quelque part ?
Je parle d'une interface dans geonature qui est ouverte à n'importe qui souhaite s'inscrire, donc en complément à usershub.

@TheoLechemia
Copy link
Member

TheoLechemia commented Apr 11, 2019

Bonjour,

Oui c'est dans les tuyaux, du moins du côté UsersHub. Amandine a travaillé sur UsersHub pour faire une API de création d'utilisateur, et de pouvoir y associer des droits.
Il y a une ébauche de test ici: https://github.com/PnX-SI/test_client_usershub_api
L'interface pour GeoNature reste à faire.
Toute PR bienvenue bien-sur 👍

@camillemonchicourt
Copy link
Member

L'ajout de l'API de UsersHub est encore une PR que nous intégrerons prochainement : PnX-SI/UsersHub#80

Une fois celle-ci ajoutée à GeoNature, il sera possible d'ajouter une fonctionnalité de Création de compte sur la page de login de GeoNature (fonction activable en paramètre car certaines instances de GeoNature ne la voudront pas).
Lors de la demande de création de compte depuis GeoNature, cela enverra une requête à l'API de UsersHub qui ajoutera l'utilisateur dans le schéma utilisateurs, en l'ajoutant directement à un groupe. Au préalable il faudra donner accès à GeoNature à ce groupe (profil lecteur dans UsersHub) ainsi qu'un CRUVED au niveau de GeoNature. Précisions sur PnX-SI/UsersHub#47

@DonovanMaillard
Copy link
Contributor

Peut être très pratique en effet, notamment pour la gestion des mots de passe. En revanche, est-il prévu un système d'approbation de l'utilisateur par un admin?

Idem, est-ce que ça va permettre à un utilisateur de renouveler son mot de passe en cas d'oubli ou autre? :)

@jbrieuclp
Copy link
Contributor Author

Pour le moment je pars sur la possibilité de changer ses infos perso (nom, prenom, remarques, identifiant, mail) et changement de mot de passe.
-Coté front ca fait 2 interfaces (visu/modif et changement password)
-coté back, je crée les routes dans le backend de geonature (car lié à geonature et pas userhub, mais j'utilise les nouveaux models d'Amandine de l'API)

Au niveau de l'inscription, il va y avoir 1 interface (activable par configuration) de creation de compte et 1 de recup de mot de passe (ça c'est sur le papier, j'sais pas comment elle peut se créer avec flask :D)

@TheoLechemia
Copy link
Member

Voir ses infos perso (nom, prenom, identifiant...) c'est très UsersHub ça ...
Je voyais juste un truc simple: j'ai oublié mon mot de passe et j'en régénère un nouveau. Et un formulaire de création de compte.

coté back, je crée les routes dans le backend de geonature (car lié à geonature et pas userhub, mais j'utilise les nouveaux models d'Amandine de l'API

Les routes ont déjà été faites dans UsersHub. C'est dans cette PR: PnX-SI/UsersHub#80 (non intégrée)

ça c'est sur le papier, j'sais pas comment elle peut se créer avec flask

Elle n'est pas faite en Angular l'interface ?

@jbrieuclp
Copy link
Contributor Author

C'est peut-être UsersHub, mais pas user tout court. Il faut une interface pour permettre a l'utilisateur de traiter des propres infos perso de manière autonome, même si pour le moment elles sont minimes, elles pourront avoir vacation a évoluer, un jour.
J'ai épluché les branches develop du usershub#80, mais sauf erreur il faut un droit d'admin sur usershub malgré tout (?).

@camillemonchicourt
Copy link
Member

camillemonchicourt commented May 2, 2019

Pourquoi pas avoir ces interfaces, mais à prendre en compte :

  • Certaines structures peuvent ne pas souhaiter les rendre accessibles
  • Dans certains cas, le schéma "utilisateurs" présent dans la BDD GeoNature n'est qu'une réplication d'une BDD mère ailleurs. L'intérêt de UsersHub étant de centraliser les utilisateurs de plusieurs applications
  • Certains souhaitent gérer les utilisateurs, leurs comptes et leurs droits dans des mécanismes externes comme LDAP, ou CAS donc garder ça possible

@TheoLechemia
Copy link
Member

TheoLechemia commented May 2, 2019

En fait on pensait faire en sorte qu'on puisse avoir accès à ses infos perso directement dans UsersHub (dans une version limité ou un utilisateur lambda a accès uniquement à ses info). ça évite de le faire dans GeoNature, puis dans Taxhub etc ...

Le workflow qu'a mis en place Amandine est un peu complexe: regarde ce schéma:

workflow_api_register

@amandine-sahl, tu peux peut-être préciser certaines choses ?

Les routes en questions sont ici :
https://github.com/amandine-sahl/UsersHub/blob/develop/app/api/route_register.py

@amandine-sahl
Copy link
Contributor

Pour le moment il n'y a pas de composant angular, nous avons créer une application démo bidon en flask pour l'occasion. (https://github.com/PnX-SI/test_client_usershub_api)

Pour des questions de sécurité il faut effectivement avoir un role qui a les droits nécessaires pour pouvoir créer des utilisateurs. Cet utilisateur peut être paramétrer dans l'application. cf application test

@jbrieuclp
Copy link
Contributor Author

En fait on pensait faire en sorte qu'on puisse avoir accès à ses infos perso directement dans Userhub (dans une version limité ou un utilisateur lambda a accès uniquement à ses info). ça évite de le faire dans GeoNature, puis dans Taxhub etc ...

La question qui se faut se poser c'est est-ce que usershub ou taxhub doivent être des apps ouvertes à tous ou doivent-elles ne rester accessible qu'à certaines personnes possédant des droits spécifiques (administration, gestion des fiches taxo...). Perso je les vois d'avantage comme des apps spécifiques accessible à quelques personnes administrées via usershub comme c'est déjà le cas.

Je suis partisans de multiplier les fronts, pour avoir des apps cohérentes sans qu'il soit nécessaire de jongler d'une app à une autre pour tel ou tel fonctionnalité. Par contre je suis d'accord pour ne pas multiplier les API il faut que les front pointent tous vers une même API spécialisée (usershub, taxhub, geonature).

@camillemonchicourt
Copy link
Member

Oui en effet, les utilisateurs de GeoNature n'ont pas forcément à aller sur UsersHub qui reste dédiée aux administrateurs.

Donc pourquoi pas le proposer dans GeoNature, avec les réserves et la généricité évoquée précédemment (désactivable, ouvert à d'autres méthodes de gestion des utilisateurs...)

@jbrieuclp
Copy link
Contributor Author

Par rapport au paramétrage, me baser sur la config
[CAS_PUBLIC] [CAS_AUTHENTIFICATION] = false
permet d'exclure toutes connexions CAS INPN ?

Est-ce que ajouter un paramètre de config "SIGN_UP" : true/false lié à l'application conviendrait pour paramétrer le fait de pouvoir s'inscrire ou non ?

Au passage, petite question de fonctionnement (je pourrais fouiller le code mais bon...), est-ce qu'une connexion via CAS crée un rôle dans t_role ?

@TheoLechemia
Copy link
Member

TheoLechemia commented May 7, 2019

[CAS_PUBLIC] [CAS_AUTHENTIFICATION] = false
permet d'exclure toutes connexions CAS INPN ?

C'est pour le contexte GeoNature "dépot légal de biodiversit"é, on utilise le CAS de l'INPN pour se connecter. A n'utiliser que dans ce contexte, donc oui on laisse false.

Est-ce que ajouter un paramètre de config "SIGN_UP"

ça me va. Ou ENABLE_SIGN_UP

Au passage, petite question de fonctionnement (je pourrais fouiller le code mais bon...), est-ce qu'une connexion via CAS crée un rôle dans t_role ?

Oui un enregistrement est créé dans t_roles. Mais encore une fois, ce mécanisme ne marche que pour "dépot légal"

@camillemonchicourt
Copy link
Member

Un travail collectif a donc été réalisé (par @joelclems, @amandine-sahl, @jbrieuclp et @TheoLechemia) permettant d'interagir avec UsersHub depuis des applications tierces, grâce à l'ajout d'une API sécurisée de création de comptes utilisateurs (création de rôles et d'utilisateurs temporaires à valider, changement de mot de passe et des informations personnelles). Celle-ci a été intégrée dans la nouvelle version de UsersHub (https://github.com/PnX-SI/UsersHub/releases/tag/2.1.0).

Au niveau de GeoNature, la version 2.2.0 à venir intégrera ainsi plusieurs évolutions :

  • Un formulaire de demande création de compte composé de champs fixes (nom, prénom, mot de passe, email, organisme, remarque...) et de champs additionnels optionnels et paramétrables à volonté (text, textarea, number, select, checkbox, taxonomy, nomenclature etc… obligatoires ou non)

image

  • Une fois le formulaire posté, les données sont stockées dans une nouvelle table de comptes temporaires (temp_users) au niveau du schéma utilisateurs de UsersHub. Les comptes sont alors auto-validés après confirmation par email ou validés dans un second temps par un administrateur
  • Il est désormais possible de définir un groupe par défaut auquel un nouvel utilisateur est automatiquement associé pour une application donnée. Cela permet d'attribuer des permissions par défaut à un utilisateur lors de la création automatique de son compte.
  • Il est aussi possible de lui créer automatiquement un cadre d'acquisition et un jeu de données personnel lors de la validation de son compte
  • Au niveau de l'authentification, un formulaire de récupération de son mot de passe a aussi été développé

image

  • Enfin, une fois connecté à GeoNature, il est désormais possible d'activer l'accès à une interface de gestion de son compte utilisateur (login, mot de passe...)

image

Ces fonctionnalités sont activables ou non de diverses manières et sont paramétrables. Voir la documentation dédiée : http://docs.geonature.fr/admin-manual.html#creation-de-compte

@ca-rock
Copy link

ca-rock commented May 4, 2022

Bonjour,

* Certains souhaitent gérer les utilisateurs, leurs comptes et leurs droits dans des mécanismes externes comme LDAP, ou CAS donc garder ça possible

Est-ce qu'il est toujours envisagé de permettre un lien entre Usershub et un serveur LDAP ?

@camillemonchicourt
Copy link
Member

Oui ça serait une évolution intéressante, mais non planifiée ni financée, et plus large que ce ticket sur l'interface d'inscription.
Potentiellement plus en lien avec ce ticket : #1811

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants