Expérience utilisateur pour les utilisateurs importés ?

Je souhaite importer environ 600 adresses e-mail d’une liste de diffusion dans Discourse, dans le but de configurer automatiquement tout le monde pour qu’il suive la catégorie « Annonces », qui servira essentiellement à reproduire la fonction principale de la liste de diffusion.

J’ai compris que dans le cadre du processus d’importation, nous (je sais qu’il existe des scripts et que mon développeur devra s’en charger) pouvons obliger toutes les personnes importées à suivre la catégorie « Annonces », de sorte qu’elles recevront systématiquement un e-mail pour chaque publication (sauf si elles cessent manuellement de la suivre). Est-ce exact ?

Ce qui est moins clair pour moi, c’est l’expérience utilisateur pour les utilisateurs importés. Chacun aura un compte, mais je suppose qu’ils ne pourront pas se connecter tant qu’ils n’auront pas défini un mot de passe. Lors de leur première visite sur le site, Discourse leur demandera de le faire. C’est correct ?

Et que se passe-t-il s’ils ne définissent jamais de mot de passe ? (La plupart ne réalisent pas qu’ils ont maintenant des comptes Mailman ; il y a donc eu des réticences à devoir créer un autre compte. Soupir.) Si une personne ne visite jamais le site et ne se connecte jamais, recevra-t-elle toujours des e-mails pour les sujets et les publications de la catégorie « Annonces » ?

Pour ceux qui ont déjà réalisé une telle opération, quels types de problèmes de support avez-vous dû gérer après l’importation ?

Merci !

Si vous avez déjà une relation transactionnelle avec ces personnes, c’est-à-dire si vous les migrez vers une nouvelle plateforme, il existe des moyens de raccourcir le processus de création de compte. Cette approche est destinée aux administrateurs plus avancés, mais voici quelques idées en ligne de commande (console Rails) qui pourraient fonctionner :

u = User.new({username: 'testuser', email: 'testuser@example.com', name: 'Test User', trust_level: 2, password: SecureRandom.hex});
u.activate();
t = u.email_tokens.create(email: u.email);
Jobs.enqueue(:critical_user_email, type: :account_created, user_id: u.id, email_token: t.token);

Selon mon expérience, cela créera le nouvel utilisateur avec les détails que vous fournirez, activera son compte afin qu’il puisse recevoir des e-mails, puis lui enverra un e-mail l’informant qu’un compte a été créé pour lui sur votre site Discourse, et lui fournira un lien pour configurer son compte :

Un nouveau compte a été créé pour vous sur Votre Nom de Site Discourse

Cliquez sur le lien suivant pour choisir un mot de passe pour votre nouveau compte :
https://discourse.example.org/u/password-reset/(randomdigits)

Vous devrez configurer votre catégorie Annonces afin que tous les nouveaux utilisateurs la suive automatiquement, ce qui est un paramètre du site.

Merci ! Cela semble relativement simple (et oui, ce sont tous des utilisateurs d’une liste que je gère et que je cherche à faire migrer hors de Mailman).

Savez-vous ce qui se passera s’ils ne configurent jamais leur compte, en ce qui concerne la réception d’e-mails dans la catégorie « Veille automatique des annonces » ?

Il y a des gens plus compétents que moi sur ce sujet, mais je pense que, comme vous exécutez la commande u.activate();, ils sont déjà pleinement activés et la seule chose qu’ils font via l’e-mail, c’est de changer leur mot de passe à partir de la chaîne aléatoire initiale que personne ne connaît.

Il existe l’idée que les utilisateurs inactifs finissent par ne plus recevoir d’e-mails, mais je ne suis pas sûr que cela s’applique ici pour les catégories « auto-surveillées ». Je n’y ai vraiment pensé que dans le contexte des destinataires des résumés ou digestes. J’espère que quelqu’un d’autre pourra apporter sa contribution à cette réponse.

Une autre question rapide sur les importations. Savez-vous ce qui se passera si vous essayez d’importer une adresse e-mail déjà attribuée à un utilisateur dans le système ? Sera-t-elle simplement ignorée ?

:man_shrugging:

Je ferais simplement un test avec une adresse jetable pour le savoir.

Je craignais que vous ne disiez cela. L’approche via la console Rails s’est avérée bien au-delà de mes compétences d’administration (Rails n’était même pas installé sur notre VPS, et je ne voyais pas comment importer 600 adresses de cette façon), je dois donc faire appel à notre développeur. Je lui demanderai de vérifier.

Vous pouvez accéder à la console Rails de votre site Discourse auto-hébergé comme suit :

ssh ....
cd /var/discourse
./launcher enter app
rails c

Merci ! J’ai dû ajouter sudo su avant la troisième ligne pour obtenir l’autorisation de me connecter au démon Docker, mais ensuite cela a fonctionné et j’ai pu exécuter les lignes du script Rails ci-dessus et créer un utilisateur de test. Hourra !

Comment ce script pourrait-il être étendu pour fonctionner avec une liste de 600 adresses e-mail ? Le lancer 600 fois semble… fastidieux. :slight_smile:

Vous généreriez un script contenant cette ligne pour les 600 utilisateurs, ou vous inséreriez les données dans une structure de données et les parcourriez en boucle.

Puisque personne ici n’avait d’expérience avec Ruby, nous avons opté pour la création d’un fichier contenant toutes les commandes, que nous avons ensuite collées dans la console Rails. Cela semble fonctionner, sauf qu’il y a maintenant quatre erreurs dans Sidekiq (sur les 50 premières importations de test), et je ne sais pas quoi en faire ni ce qu’elles signifient. Les utilisateurs ont-ils été créés ? Ou ont-ils simplement ne pas reçu l’e-mail de bienvenue ? Puisque les nouvelles tentatives échouent, devrais-je simplement supprimer ces erreurs et passer à autre chose ?

Ce serait une bonne chose pour vous de le vérifier.

Il m’est difficile d’imaginer comment l’identifiant utilisateur pourrait être invalide.

Probablement, mais vous voudrez déterminer quels utilisateurs ont échoué et pourquoi. Y a-t-il eu des erreurs lorsque vous avez collé les commandes ? Si vous ne pouvez pas le vérifier, vous devrez examiner les utilisateurs qui existent et ceux que vous attendez, puis voir quelle est la différence.

Si vous n’avez pas de moyen facile de faire défiler l’historique, vous devriez travailler par plus petits lots afin de pouvoir vérifier plus facilement leur progression.

Je n’ai été alerté de cela que bien plus tard, il n’y avait donc aucun moyen de revenir en arrière. Il est possible que ces erreurs surviennent lorsqu’une adresse e-mail importée existe déjà dans le système — je peux tester cela. Tous les utilisateurs que je m’attendais à voir créés l’ont été.

Mais ce que je ne parviens pas à comprendre, c’est s’il existe un lien entre les informations de cette capture d’écran et n’importe quoi que je pourrais rechercher dans Discourse. Les email_tokens peuvent-ils être reliés à d’autres informations ?

Il semble que je doive simplement continuer à procéder par petits lots et voir si je peux associer une erreur à l’un de ces messages.

Il s’avère que ces erreurs étaient générées à chaque fois qu’il y avait une erreur lors de l’importation, comme des noms d’utilisateurs dépassant 20 caractères, deux caractères spéciaux consécutifs dans un nom d’utilisateur, ou peut-être que l’e-mail était déjà utilisé (j’ai observé des résultats incohérents avec ce dernier cas). J’ai simplement corrigé chaque problème et poursuivi, puis supprimé toutes les erreurs de Sidekiq à la fin.