Projet

Général

Profil

Development #35774

import csv, gestion du mot de passe

Ajouté par Marie Kuntz il y a plus de 4 ans. Mis à jour il y a environ 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
03 septembre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Lors de l'import d'utilisateurs en csv, donner la possibilité d'envoyer un mail aux utilisateurs pour les avertir qu'un compte a été créé :
  • donner un lien pour finaliser l'inscription
  • ou indiquer un mot de passe à modifier à la 1e connexion

Fichiers

0002-csv_import-allow-setting-user-password-and-sending-m.patch (4,85 ko) 0002-csv_import-allow-setting-user-password-and-sending-m.patch Valentin Deniaud, 16 octobre 2019 12:30
0001-utils-allow-per-ou-template-in-send_password_reset_m.patch (1,14 ko) 0001-utils-allow-per-ou-template-in-send_password_reset_m.patch Valentin Deniaud, 16 octobre 2019 12:30
0001-utils-handle-per-ou-template-in-send_templated_mail-.patch (3,56 ko) 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch Valentin Deniaud, 31 octobre 2019 10:48
0001-utils-handle-per-ou-template-in-send_templated_mail-.patch (6,97 ko) 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch Valentin Deniaud, 07 novembre 2019 14:52
0001-utils-handle-per-ou-template-in-send_templated_mail-.patch (6,97 ko) 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch Valentin Deniaud, 07 novembre 2019 17:21
0001-utils-handle-per-ou-template-in-send_templated_mail-.patch (7,59 ko) 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch Valentin Deniaud, 07 novembre 2019 17:58
0001-utils-handle-per-ou-template-in-send_templated_mail-.patch (12,2 ko) 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch Valentin Deniaud, 13 novembre 2019 15:35
0001-utils-handle-per-ou-template-in-send_templated_mail-.patch (12,5 ko) 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch Valentin Deniaud, 14 novembre 2019 14:08
0002-csv_import-allow-setting-user-password-and-sending-m.patch (6,16 ko) 0002-csv_import-allow-setting-user-password-and-sending-m.patch Valentin Deniaud, 25 novembre 2019 14:57
0002-csv_import-allow-setting-user-password-and-sending-m.patch (4,63 ko) 0002-csv_import-allow-setting-user-password-and-sending-m.patch Valentin Deniaud, 25 novembre 2019 16:14
0001-utils-handle-per-ou-template-in-send_templated_mail-.patch (12,2 ko) 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch Valentin Deniaud, 19 mars 2020 11:03
0001-utils-handle-per-ou-template-in-send_templated_mail-.patch (12,4 ko) 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch Valentin Deniaud, 19 mars 2020 15:19

Demandes liées

Dupliqué par Authentic 2 - Bug #38778: import CSV d'utilisateur : les comptes n'ont pas de mot de passeRejeté06 janvier 2020

Actions
Bloqué par Authentic 2 - Development #35773: import csv, ajout d'un rôleFermé03 septembre 2019

Actions

Révisions associées

Révision ecb4a144 (diff)
Ajouté par Valentin Deniaud il y a environ 4 ans

utils: handle per ou template in send_templated_mail (#35774)

Révision e07cd158 (diff)
Ajouté par Valentin Deniaud il y a environ 4 ans

csv_import: allow setting user password and sending mail (#35774)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

À faire, gérer une colonne booléenne send_registration_mail, permettre la surcharge du template concerné sur 3 niveaux :
  • utiliser le template de base
  • utiliser le template de base pour l'OU de l'utilisateur (via le slug)
  • utiliser un template spécifique pour l'import CSV
  • utiliser un template spécifique pour l'import CSV et l'OU de l'utilisateur (via le slug)
#2

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Pour les mots de passe : send_reset_password_reset_email(), qui sera utilisé, fera un set_password(random) donc pas de souci de ce coté là, par contre ce serait utile d'avoir un mode set_random_password simple si on veut par ailleurs géré le mailing autrement.

Donc une colonne '@registration' avec deux valeurs possibles : send-email ou set-random-password.

#3

Mis à jour par Valentin Deniaud il y a plus de 4 ans

  • Assigné à mis à Valentin Deniaud
#4

Mis à jour par Valentin Deniaud il y a plus de 4 ans

Benjamin Dauvergne a écrit :

ce serait utile d'avoir un mode set_random_password simple si on veut par ailleurs géré le mailing autrement.

Je comprends pas cette deuxième option, ça sert à quoi de mettre un mot de passe aléatoire par rapport à ne pas en mettre ? Quel serait le cas d'usage concret ?

#5

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Si un utilisateur n'a pas de mot de passe, le lien de récupération de mot de passe ne fonctionne pas donc a minima faut en mettre un même random et inconnu de tout le monde si tu veux pouvoir faire un mailing aux gens en disant : allez sur la page de login et faite une récupération de mot de passe.

#6

Mis à jour par Valentin Deniaud il y a plus de 4 ans

Compris, je ne savais pas.

Deuxième interrogation, je comprends pas tout à la mécanique de templates que tu imagines. J'ai pigé pour OU/pas OU (merci Paul), mais dans quel cas tu imagines un recours au template par défaut ? Je trouverais pas ça clair de recevoir un mail disant en substance « bonjour vous avez demandé une réinitialisation de votre mot de passe » si on vient de créer mon compte, donc pour moi template spécifique => always.

#7

Mis à jour par Valentin Deniaud il y a plus de 4 ans

En fait il y a déjà templates/authentic2/api_user_create_registration_email qui se rapproche plus de ce qu'on voudrait envoyer, à voir si le « À votre demande » est problématique ou pas.

#8

Mis à jour par Valentin Deniaud il y a plus de 4 ans

Voilà ce que ça donne pour l'instant, sans trop se préoccuper de la tête du mail.

#9

Mis à jour par Valentin Deniaud il y a plus de 4 ans

#10

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

  • Statut changé de Solution proposée à En cours

Valentin Deniaud a écrit :

Voilà ce que ça donne pour l'instant, sans trop se préoccuper de la tête du mail.

Pour le 0001: si on suppose que template_names = ['specific.html', 'generic.html'] les versions avec slug d'ou devrait être intercalées (comme dans mon premier commentaire) et non pas mise en premier, i.e. [f'specific-{ou.slug}.html', 'specific.html', f'generic-{ou.slug}.html', 'generic.html']. Aussi j'ajouterai plutôt cette fonctionnalité à send_templated_mail() pour qu'on la retrouve progressivement partout.

Pour le 0002: ok.

#11

Mis à jour par Valentin Deniaud il y a plus de 4 ans

Revoilà un patch 1 avec le boulot dans send_templated_mail.

#12

Mis à jour par Valentin Deniaud il y a plus de 4 ans

Avec le patch c'est mieux.

#13

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Valentin Deniaud a écrit :

Avec le patch c'est mieux.

Je note tout de suite que ce serait bien d'avoir un test unitaire sur send_templated_mail aussi.

#15

Mis à jour par Valentin Deniaud il y a plus de 4 ans

Le test ne passait pas parce que la modification du setting TEMPLATES n'était pas prise en compte, django instanciant une seule fois les objets qui chargent les templates. Donc en local quand je le lançais avec -k ça passait, mais en lançant tous les tests non. Je me demande quand même si je suis pas en train de réinventer la roue...

#17

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Désolé de t'avoir laissé patauger, je pense qu'encore plus simple tu pourrais poser une configuration des templates en dur dans tests/settings.py pointant vers tests/templates/ et y mettre les différents templates dont tu as besoin.

#19

Mis à jour par Valentin Deniaud il y a plus de 4 ans

tests rouges à cause de #37390

Ils l'étaient aussi pour une autre raison, pour ajouter le répertoire tests/templates/ j'avais tenté un from authentic2.settings import TEMPLATES, puis TEMPLATES[0]['DIRS'].append(...), ça semblait marcher mais les tests rbac plantaient pour une raison étrange. Plus qu'à copier coller la config des templates depuis les settings vers les tests settings, en ajoutant le nouveau répertoire. Anyway, c'est vert.

#20

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Valentin Deniaud a écrit :

tests rouges à cause de #37390

Ils l'étaient aussi pour une autre raison, pour ajouter le répertoire tests/templates/ j'avais tenté un from authentic2.settings import TEMPLATES, puis TEMPLATES[0]['DIRS'].append(...), ça semblait marcher mais les tests rbac plantaient pour une raison étrange. Plus qu'à copier coller la config des templates depuis les settings vers les tests settings, en ajoutant le nouveau répertoire. Anyway, c'est vert.

Ni besoin de recopier ou d'importer, TEMPLATES est déjà dans le scope (tests/settings.py est déclaré comme variable d'environnement AUTHENTIC2_SETTINGS_FILE qui sert à faire un execfile() dans le contexte de authentic2.settings tout à la fin).

#21

Mis à jour par Valentin Deniaud il y a plus de 4 ans

Merci pour l'explication, qui en bonus me permet de comprendre pourquoi les tests rbac sont affectés, et d'y remédier.

#22

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

  • Statut changé de Solution proposée à Solution validée

Valentin Deniaud a écrit :

Merci pour l'explication, qui en bonus me permet de comprendre pourquoi les tests rbac sont affectés, et d'y remédier.

Dernière remarque je pense maintenant que je me remet à lire la partie concernant strictement ce ticket, il faudrait qu'en cas de création si rien de particulier n'est demandé on pose systématiquement un mot de passe aléatoire faute de mieux.

#23

Mis à jour par Valentin Deniaud il y a plus de 4 ans

Tout à fait d'accord. Donc c'est reparti pour un renommage de @registration en @send-email, qui devient alors une colonne booléenne ?

#24

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

  • Statut changé de Solution validée à En cours

Valentin Deniaud a écrit :

Tout à fait d'accord. Donc c'est reparti pour un renommage de @registration en @send-email, qui devient alors une colonne booléenne ?

À ce stade je pensais plus à du code adhoc pour repérer qu'on est hors des clous plutôt que de tout changer.

#25

Mis à jour par Valentin Deniaud il y a plus de 4 ans

J'ai relu le texte du ticket et je me suis aperçu que le deuxième point de Marie avait été mis de côté, alors en même temps que je mettais un mot de passe à tous les utilisateurs créés par défaut, j'ai remplacé l'option qui permettait de le faire par une autre qui correspond à ce point 2.

#26

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Valentin Deniaud a écrit :

J'ai relu le texte du ticket et je me suis aperçu que le deuxième point de Marie avait été mis de côté, alors en même temps que je mettais un mot de passe à tous les utilisateurs créés par défaut, j'ai remplacé l'option qui permettait de le faire par une autre qui correspond à ce point 2.

C'est vraiment pas une bonne idée de proposer ça, je suis pour ignorer cette demande, il y a clairement un "ou" dans ses propositions pour moi il est exclusif.

#27

Mis à jour par Marie Kuntz il y a plus de 4 ans

Non, il n'était pas exclusif, mais je vais clarifier ma demande : ce serait bien d'avoir la possibilité de faire soit l'un, soit l'autre, et que ce choix soit possible par import.

#28

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Marie Kuntz a écrit :

Non, il n'était pas exclusif, mais je vais clarifier ma demande : ce serait bien d'avoir la possibilité de faire soit l'un, soit l'autre, et que ce choix soit possible par import.

Et donc je dis que le deuxième est interdit, on n'envoie pas des mots de passe dans des mails qui pourront peut-être y rester et ne jamais changer.

#29

Mis à jour par Marie Kuntz il y a plus de 4 ans

ok, ça me va

#30

Mis à jour par Valentin Deniaud il y a plus de 4 ans

Ça me va aussi, je ne m'étais pas posé plus de question vu qu'il est possible de le faire via l'interface web.
Hop, disparu.

#31

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

  • Dupliqué par Bug #38778: import CSV d'utilisateur : les comptes n'ont pas de mot de passe ajouté
#33

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

  • Statut changé de Solution proposée à Solution validée

Peut-être faut-il rebaser.

#34

Mis à jour par Valentin Deniaud il y a environ 4 ans

Rebasé, j'attends que ce soit vert et je pousse.

#35

Mis à jour par Valentin Deniaud il y a environ 4 ans

Ma manière d'ajouter un répertoire de templates de test ne marchait plus en python3, j'ai créé une fixture à la place et ça a l'air de passer. En attente de verdure toujours.

#36

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

  • Statut changé de Solution proposée à En cours

amarchepas.

#37

Mis à jour par Valentin Deniaud il y a environ 4 ans

Oui en fait revert du patch précédent et

-BASE_TEST_DIR = os.path.join(os.path.dirname(os.path.dirname(BASE_DIR)), 'tests')
-
-TEMPLATES[0]['DIRS'].append(os.path.join(BASE_TEST_DIR, 'templates'))
+TEMPLATES[0]['DIRS'].append('tests/templates')

Pourquoi faire simple quand on peut faire compliqué (les tests passaient plus en py3 parce que BASE_DIR n'est pas le même, en fait on en a pas besoin). C'est vert.

#38

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

  • Statut changé de Solution proposée à Solution validée

Go.

#39

Mis à jour par Valentin Deniaud il y a environ 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 4c34b293cb4bfd166f38c98cdf076f192fa8b8fd
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Oct 15 17:32:19 2019 +0200

    csv_import: allow setting user password and sending mail (#35774)

commit 2ad5dba115c2c2daaff69cd2db5eaf2430f0bb22
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Wed Oct 16 11:03:32 2019 +0200

    utils: handle per ou template in send_templated_mail (#35774)
#40

Mis à jour par Frédéric Péters il y a environ 4 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF