Project

General

Profile

Development #25666

manager : paramétrage de la section "mot de passe" de la création d'un compte

Added by Frédéric Péters almost 2 years ago. Updated about 1 year ago.

Status:
Solution déployée
Priority:
Normal
Category:
-
Target version:
-
Start date:
13 Aug 2018
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

Aujourd'hui le formulaire contient :

  • générer un mot de passe (pas coché)
  • mot de passe et confirmation
  • doit changer de mot de passe à la prochaine connexion (pas coché)
  • envoyer les informations à l'utilisateur (coché)
  • envoyer un courriel à l'utilisateur pour qu'il choisisse son mot de passe (pas coché)

Il me semble que létat de ces différentes cases à cocher devrait pouvoir être configuré au niveau du site.

(et ma préférence pour le paramétrage par défaut serait : générer un mot de passe, + envoyer un courriel à l'utilisateur pour qu'il choisisse son mot de passe après #25665)

Plus tard, idéalement, ça pourrait être verrouillé/caché, qu'une politique de site s'applique, sans possibilité pour l'agent d'y déroger.

0001-WIP-25666.patch View (2.07 KB) Paul Marillonnet, 18 Dec 2018 05:56 PM

panel1.png View (42.4 KB) Paul Marillonnet, 26 Feb 2019 02:42 PM

0001-manager-add-settings-for-password-section-options-on.patch View (5.3 KB) Paul Marillonnet, 26 Feb 2019 03:59 PM

0001-manager-add-settings-for-password-section-options-on.patch View (5.3 KB) Paul Marillonnet, 26 Feb 2019 04:19 PM

0001-manager-add-settings-for-password-section-options-on.patch View (4.13 KB) Paul Marillonnet, 26 Feb 2019 05:55 PM

0001-manager-add-settings-for-password-section-options-on.patch View (5.85 KB) Paul Marillonnet, 27 Feb 2019 03:57 PM

0001-manager-add-settings-for-password-section-options-on.patch View (5.99 KB) Paul Marillonnet, 27 Feb 2019 05:12 PM

0001-manager-add-settings-for-password-section-options-on.patch View (5.98 KB) Paul Marillonnet, 05 Mar 2019 11:21 AM

0001-manager-add-settings-for-password-section-options-on.patch View (5.79 KB) Paul Marillonnet, 06 Mar 2019 12:12 PM

32044

Related issues

Related to Publik - Development #19756: Personnalisation accrue du portail agent pour en faire aussi la page d'entrée des agents d'accueil Fermé 29 Oct 2017 30 Jun 2018

Associated revisions

Revision 97c12bdb (diff)
Added by Paul Marillonnet about 1 year ago

manager: add settings for password section options on user add (#25666)

History

#1 Updated by Mikaël Ates almost 2 years ago

Pouvoir définir une politique pour un site et ne plus avoir ces options qui s'affichent serait bien.

Pour la configuration par défaut, pourquoi souhaiter générer un mot de passe par défaut ? Je serai plutôt pour par défaut lui envoyer un courriel pour qu'il choisisse son mot de passe.

C'est ce que l'on fait pour les agents sur GLC, pas d'affichage d'option et envoi d'un courriel à l'agent pour définir son mot de passe.

#2 Updated by Frédéric Péters almost 2 years ago

Je serai plutôt pour par défaut lui envoyer un courriel pour qu'il choisisse son mot de passe.

Oui tout à fait, c'était ma parenthèse "(+ envoyer un courriel à l'utilisateur pour qu'il choisisse son mot de passe)", je parlais de la génération plutôt pour rappeler "pas de saisie par l'agent".

#3 Updated by Frédéric Péters over 1 year ago

  • Related to Development #19756: Personnalisation accrue du portail agent pour en faire aussi la page d'entrée des agents d'accueil added

#4 Updated by Paul Marillonnet over 1 year ago

  • Assignee set to Paul Marillonnet

#5 Updated by Paul Marillonnet over 1 year ago

Un premier WIP qui va chercher dans les app_settings, mais je comprends bien que ce n'est pas suffisant pour ce qu'on veut ici.
Je regarde demain comment gérer ça depuis la config du site.

#7 Updated by Paul Marillonnet over 1 year ago

32044

Et si ce n'est pas caché/verrouillé pour l'instant, j'imagine qu'il faut laisser l'agent (ayant le rôle d'administration A2 adéquat) effectuer cette configuration.

Je verrais bien un lien en plus dans le /manage/, comme dans le png joint (l'intitulé est sans doute mal choisi, je n'ai pas trouvé mieux pour l'instant), qui mènerait à une simple page présentant les options actuellement présentes dans la page d'ajout d'un usager. Est-ce que je me plante ?

#8 Updated by Paul Marillonnet over 1 year ago

(Ça peut paraître prématuré de discuter de ça à ce moment là du ticket, avant même le dév en lui même, mais je crois, peut-être à tort, que l'emplacement de cette page dans le backoffice va conditionner assez complètement l'implémentation.)

#9 Updated by Frédéric Péters over 1 year ago

Aujourd'hui les paramétrages d'authentic se font via les settings (ou pour quelques-uns via des attributs portés par l'OU), je ne mêlerais pas à ce ticket la création d'une nouvelle interface de configuration.

#10 Updated by Paul Marillonnet over 1 year ago

Ok, pardon, mauvaise compréhension de la description du ticket de ma part (je croyais qu'il était question d'offrir une nouvelle interface à l'agent, et qu'un nouveau développement futur permettrait de cacher/verrouiller ou non, au choix).
Je reviens ici avec un patch.

#11 Updated by Mikaël Ates over 1 year ago

Peut-on envisager deux choses au travers ce ticket mais si nécessaire j'en créerai de nouveaux :

  • Avoir par défaut la case "Envoyer un courriel à l'utilisateur pour qu'il choisisse son mot de passe" cochée et les autres cases décochées par défaut.
  • Avoir un settings HIDE_PASSWORD_OPTIONS_AT_USER_CREATION (ou autre), qui cache toutes les options de mot de passe sur la fiche de création d'un utilisateur, pour tout le site, et qui suppose l'option "Envoyer un courriel à l'utilisateur pour qu'il choisisse son mot de passe".

#12 Updated by Paul Marillonnet over 1 year ago

Mikaël Ates a écrit :

Peut-on envisager deux choses au travers ce ticket mais si nécessaire j'en créerai de nouveaux :

  • Avoir par défaut la case "Envoyer un courriel à l'utilisateur pour qu'il choisisse son mot de passe" cochée et les autres cases décochées par défaut.

C'est juste sur les valeurs par défaut des settings qu'il faut se mettre d'accord (cf patch).

  • Avoir un settings HIDE_PASSWORD_OPTIONS_AT_USER_CREATION (ou autre), qui cache toutes les options de mot de passe sur la fiche de création d'un utilisateur, pour tout le site, et qui suppose l'option "Envoyer un courriel à l'utilisateur pour qu'il choisisse son mot de passe".

Je dirais un nouveau ticket, non ?

#13 Updated by Mikaël Ates over 1 year ago

Paul Marillonnet a écrit :

Mikaël Ates a écrit :

Peut-on envisager deux choses au travers ce ticket mais si nécessaire j'en créerai de nouveaux :

  • Avoir par défaut la case "Envoyer un courriel à l'utilisateur pour qu'il choisisse son mot de passe" cochée et les autres cases décochées par défaut.

C'est juste sur les valeurs par défaut des settings qu'il faut se mettre d'accord (cf patch).

Il me semble qu'on est d'accord sur A2_USER_ADD_GENERATE_PASSWORD par défaut à False et le reste comme tu l'as défini, cf #note-2

  • Avoir un settings HIDE_PASSWORD_OPTIONS_AT_USER_CREATION (ou autre), qui cache toutes les options de mot de passe sur la fiche de création d'un utilisateur, pour tout le site, et qui suppose l'option "Envoyer un courriel à l'utilisateur pour qu'il choisisse son mot de passe".

Je dirais un nouveau ticket, non ?

#30913

#15 Updated by Benjamin Dauvergne over 1 year ago

Il doit y avoir plusieurs tickets parce qu'il me semble que j'avais déjà exposé un plan :
  • ajouter des paramètres sur les OUs pour choisir parmi une liste de politique de mots de passe
  • mettre par défaut "mot de passe envoyé par courriel" pour toutes les OUs

#16 Updated by Paul Marillonnet over 1 year ago

Et donc plutôt quelque chose comme ça ?

#17 Updated by Paul Marillonnet over 1 year ago

Paul Marillonnet a écrit :

Et donc plutôt quelque chose comme ça ?

Ah non, pardon, je n'ai pas vu cette histoire de liste de politique de mots de passe.
Je vais revenir proposer autre chose ici.

#18 Updated by Paul Marillonnet over 1 year ago

  • Status changed from Solution proposée to En cours

#19 Updated by Benjamin Dauvergne over 1 year ago

Paul Marillonnet a écrit :

Paul Marillonnet a écrit :

Et donc plutôt quelque chose comme ça ?

Ah non, pardon, je n'ai pas vu cette histoire de liste de politique de mots de passe.
Je vais revenir proposer autre chose ici.

Franchement ça peut commencer par une unique possibilité "envoyer un lien par mail" et attendre que quelqu'un se plaigne de la disparition des autres options.

#20 Updated by Paul Marillonnet over 1 year ago

Je crois que le ticket ici ne concerne que le préremplissage des cases à cocher dans la page d'ajout d'un usager. Pas de disparition donc, pour l'instant en tout cas.

#21 Updated by Paul Marillonnet over 1 year ago

Paul Marillonnet a écrit :

Ah non, pardon, je n'ai pas vu cette histoire de liste de politique de mots de passe.

Et donc, simplement, on peut faire un nouveau modèle de politique de mot de passe, gérant ces 4 paramètres à l'aide de champs booléens, et ajouter une relation plusieurs-à-un du modèle d'OU vers ce nouveau modèle. L'initialisation des champs de formulaire irait retrouver l'objet (en tapant directement dans 'UserAddView.ou.user_add_password_policy').
Les politiques proposées par défaut seraient présentes en dur dans le code et seraient créées à la réception du signal post_migrate. À voir ensuite si on offre la gestion des politiques dans /manage/, mais ça me paraît être du détail.
Est-ce qu'on part là-dessus ?

#22 Updated by Benjamin Dauvergne over 1 year ago

Paul Marillonnet a écrit :

Paul Marillonnet a écrit :

Ah non, pardon, je n'ai pas vu cette histoire de liste de politique de mots de passe.

Et donc, simplement, on peut faire un nouveau modèle de politique de mot de passe, gérant ces 4 paramètres à l'aide de champs booléens, et ajouter une relation plusieurs-à-un du modèle d'OU vers ce nouveau modèle. L'initialisation des champs de formulaire irait retrouver l'objet (en tapant directement dans 'UserAddView.ou.user_add_password_policy').
Les politiques proposées par défaut seraient présentes en dur dans le code et seraient créées à la réception du signal post_migrate. À voir ensuite si on offre la gestion des politiques dans /manage/, mais ça me paraît être du détail.
Est-ce qu'on part là-dessus ?

NONNNNNNNNNNN :) Juste une liste à choix sur OrganizationalUnit comme cela arrive pour l'expiration des comptes et viendra pour la complexité des mots de passe aussi, nommé user_add_password_policy

Si tu as envie tu peux directement gérer ces cas :
  • envoie d'un lien de reset
  • définition manuelle du mot de passe

On veut simplifier.

#23 Updated by Paul Marillonnet over 1 year ago

Ok!

#24 Updated by Benjamin Dauvergne over 1 year ago

  • Plutôt que des tuples fais des dico {'x': True, 'y': False} etc.. tu peux faires des collections.NamedTuple si ça t'amuse, c'est typé et ça se convertit en dict via ._asdict()
  • pas besoin de caster tes chaînes en int, utilise un IntegerField plutôt qu'un CharField
  • nomme tes constantes magiques, et utilise un dico plutôt qu'une liste pour les valeurs correspondantes
    RESET_LINK_POLICY = 0
    MANUAL_PASSWORD_POLICY = 1
    
    POLICY_VALUES = {
       RESET_LINK_POLICY: PolicyValue(generate_password=False, ...),
    }
    
  • range tout ça dans la classe du modèle, ça fait plus propre je trouve (c'est purement personnel) et donne un accès direct via les instances

#25 Updated by Paul Marillonnet over 1 year ago

Voilà, tout corrigé dans ce nouveau patch.

#26 Updated by Benjamin Dauvergne over 1 year ago

Ack quand les tests passeront.

#27 Updated by Paul Marillonnet about 1 year ago

Benjamin Dauvergne a écrit :

Ack quand les tests passeront.

Tiens, un drôle de bogue1 que je ne reproduis pas en local.
Je regarde l'affaire.

1 https://jenkins2.entrouvert.org/job/authentic-wip/job/wip%252F25666-user-add-policies/6/consoleText

#28 Updated by Paul Marillonnet about 1 year ago

Paul Marillonnet a écrit :

Tiens, un drôle de bogue1 que je ne reproduis pas en local.

Bein en fait si, ma faute. Nouveau patch donc.

#29 Updated by Benjamin Dauvergne about 1 year ago

La façon de récupérer le ou_id n'est vraiment pas propre, l'OU étant résolu par la vue par ailleurs il faut le récupérer depuis là où c'est fait la première fois (je pense que l'ou doit être passé au formulaire d'une manière ou d'une autre).

#30 Updated by Paul Marillonnet about 1 year ago

Benjamin Dauvergne a écrit :

La façon de récupérer le ou_id n'est vraiment pas propre, l'OU étant résolu par la vue par ailleurs il faut le récupérer depuis là où c'est fait la première fois (je pense que l'ou doit être passé au formulaire d'une manière ou d'une autre).

Ok, c'est vrai. Je vais trouver une façon plus propre de récupérer cet identifiant.

#31 Updated by Paul Marillonnet about 1 year ago

  • Status changed from Solution proposée to En cours

#32 Updated by Paul Marillonnet about 1 year ago

#33 Updated by Benjamin Dauvergne about 1 year ago

  • Status changed from Solution proposée to Solution validée

Ack.

#34 Updated by Paul Marillonnet about 1 year ago

  • Status changed from Solution validée to Résolu (à déployer)
commit 97c12bdbc926a2bd8427f01f0bc95f1aee4ebb09
Author: Paul Marillonnet <pmarillonnet@entrouvert.com>
Date:   Tue Feb 26 15:56:06 2019 +0100

    manager: add settings for password section options on user add (#25666)

#35 Updated by Frédéric Péters about 1 year ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF