Development #35774
import csv, gestion du mot de passe
0%
Description
- donner un lien pour finaliser l'inscription
- ou indiquer un mot de passe à modifier à la 1e connexion
Fichiers
Demandes liées
Révisions associées
csv_import: allow setting user password and sending mail (#35774)
Historique
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- 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)
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.
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 ?
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.
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.
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.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0002-csv_import-allow-setting-user-password-and-sending-m.patch 0002-csv_import-allow-setting-user-password-and-sending-m.patch ajouté
- Fichier 0001-utils-allow-per-ou-template-in-send_password_reset_m.patch 0001-utils-allow-per-ou-template-in-send_password_reset_m.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Voilà ce que ça donne pour l'instant, sans trop se préoccuper de la tête du mail.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Bloqué par Development #35773: import csv, ajout d'un rôle ajouté
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.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
Revoilà un patch 1 avec le boulot dans send_templated_mail.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch ajouté
- Statut changé de En cours à Solution proposée
Avec le patch c'est mieux.
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.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch ajouté
Avec le test.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch ajouté
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...
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch ajouté
Cette fois-ci c'est la bonne.
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.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch ajouté
Yep. (tests rouges à cause de #37390)
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.
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).
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch ajouté
Merci pour l'explication, qui en bonus me permet de comprendre pourquoi les tests rbac sont affectés, et d'y remédier.
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.
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 ?
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.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0002-csv_import-allow-setting-user-password-and-sending-m.patch 0002-csv_import-allow-setting-user-password-and-sending-m.patch ajouté
- Statut changé de En cours à Solution proposée
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.
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.
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.
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.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0002-csv_import-allow-setting-user-password-and-sending-m.patch 0002-csv_import-allow-setting-user-password-and-sending-m.patch ajouté
Ç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.
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é
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.
Mis à jour par Valentin Deniaud il y a environ 4 ans
Rebasé, j'attends que ce soit vert et je pousse.
Mis à jour par Valentin Deniaud il y a environ 4 ans
- Fichier 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch ajouté
- Statut changé de Solution validée à Solution proposée
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.
Mis à jour par Benjamin Dauvergne il y a environ 4 ans
- Statut changé de Solution proposée à En cours
amarchepas.
Mis à jour par Valentin Deniaud il y a environ 4 ans
- Fichier 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch 0001-utils-handle-per-ou-template-in-send_templated_mail-.patch ajouté
- Statut changé de En cours à Solution proposée
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.
Mis à jour par Benjamin Dauvergne il y a environ 4 ans
- Statut changé de Solution proposée à Solution validée
Go.
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)
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
utils: handle per ou template in send_templated_mail (#35774)