Comment définir les préférences de notification par e-mail de tous les utilisateurs sur « aucun » ?

Mon cas d’usage : j’importe progressivement mon forum actuel. Dans un premier temps, nous devrons procéder à de nombreuses re-catégorisations, attribuer des badges aux membres, les affecter à des groupes d’utilisateurs, déplacer des publications, créer de nouveaux sujets d’aide, etc. Parallèlement, quelques utilisateurs sélectionnés seront invités à participer aux tests.

Durant cette période, je souhaite m’assurer qu’aucun utilisateur actuel ne reçoive d’e-mails de notification provenant d’un forum dont il ignore l’existence. Le paramètre « désactiver tous les e-mails » ne fonctionnera pas, car les utilisateurs de test doivent pouvoir demander un nouveau mot de passe pour se connecter.

J’ai déjà désactivé les résumés par e-mail et configuré le paramètre qui définit par défaut toutes les catégories sur « silencieux ».

Je veux m’assurer qu’aucun autre e-mail ou notification de quelque nature que ce soit ne soit envoyé, sauf lorsque les utilisateurs demandent spécifiquement un nouveau mot de passe.

Que puis-je faire pour garantir qu’aucun e-mail ne soit envoyé ? Est-ce suffisant ?

Merci de m’aider à comprendre cela !

Vous souhaitez désactiver tous les utilisateurs. Ils pourront réactiver leur compte en réinitialisant leur mot de passe. Vous devriez pouvoir trouver un exemple de commande Rails pour cela en recherchant ici ou en consultant certains scripts d’importation.

Merci pour l’indication selon laquelle je dois les désactiver. J’ai trouvé un script que vous avez écrit dans un autre sujet ; cela devrait suffire, n’est-ce pas ?

cd /var/discourse
./launcher enter app
rails c
User.where(“last_seen_at < ‘2016-01-01’”).update_all(active: false)
exit
exit

Cela semble correct ! Vous voudrez peut-être désactiver tous les utilisateurs et permettre à vos quelques collaborateurs de réinitialiser leurs mots de passe, afin de vous assurer que vous n’envoyez pas de courriels aux mauvaises personnes et de voir comment ce processus fonctionne.

Oui, je m’en occupe. En fait, tout le monde doit réinitialiser son mot de passe de toute façon, car je n’ai pas importé les mots de passe.

Comment réactiver tout le monde une fois le déplacement terminé ?
Remplacer active:false par active:true ?

Ils devront utiliser la fonction « mot de passe oublié » pour se connecter.

Ok, eh bien, ils doivent le faire de toute façon :slight_smile:

Merci pour votre aide et vos réponses rapides !

Mise à jour : merci beaucoup ! Je viens de l’exécuter,

j’ai d’abord vérifié dans le panneau d’administration quels utilisateurs seraient concernés ; pour l’instant, je devais uniquement activer mon propre compte. Ma dernière activité remontait à environ 50 jours (alors que j’avais été actif ces derniers jours), donc 50 jours a servi de point de coupure.

Comme je suis paresseux et que je ne voulais pas faire trop de calculs, j’ai adapté la date au 2020-01-01 et j’ai lancé le script,

et hop, 25 400 utilisateurs passés de « actif » à « inactif ».

Aussi : cela exclut discobot et l’utilisateur système, qui restent actifs (ce qui est logique et je suis ravi que ce soit programmé ainsi :)).