Comment désactiver le courrier pour les utilisateurs en phase de préparation ?

Suite à la discussion sur Description des différents états d’utilisateur dans Discourse (Admin / Modérateur / Personnel / Développeur / Autre) :

Je gère un forum qui inclut une importation depuis Google Groups. Pour diverses raisons, l’objectif est que ce forum serve d’archive statique du groupe Google. Le groupe Google continuera de fonctionner de manière autonome, tandis que le forum se contentera d’afficher ses messages en tant que données archivées statiques. Pour l’instant, je procède en exécutant périodiquement le script d’importation Google, mais je pense bientôt plutôt configurer la réception des courriels et abonner la catégorie à la liste du groupe Google.

J’ai désactivé l’option enabled staged users. Tous les utilisateurs apparaissent désormais avec active=false et staged=true.

Si quelqu’un répond à un message, il reçoit un courriel.

Si quelqu’un lui envoie un message privé (MP), il reçoit également un courriel.

Si je passe le statut staged de l’utilisateur à false, il ne reçoit plus de MP, mais il continue de recevoir des notifications concernant les réponses à ses messages. Ce comportement me semble approprié et correspond exactement à ce qu’une autre personne demandait aujourd’hui même. Cependant, cette entité estime qu’elle n’a pas le droit d’envoyer des courriels à ces utilisateurs de Google Groups qui n’ont pas créé de compte sur le forum.

Peut-être pourrais-je modifier le script d’importation et/ou créer un plugin qui ferait en sorte que tous les utilisateurs avec active=false soient automatiquement définis avec staged=false ? Ou alors, je pourrais configurer la catégorie d’archive pour qu’elle ne puisse pas être surveillée (via un plugin, je suppose) ?

Pour la précision, voici comment les utilisateurs « staged » sont censés être traités :

Suite à la discussion de Comment désactiver les e-mails pour les utilisateurs en attente ? :

Eh bien, je n’ai pas trouvé de moyen d’empêcher les utilisateurs en attence de recevoir des e-mails, alors je vais probablement faire :

def no_mail_for_staged_users
  staged=User.where(staged: true)
  staged.all.each do |user|
    o=UserOption.find_by(user_id: user.id)
    o.email_level = 2
    o.email_messages_level = 2
    o.email_digests = false
    o.save
  end
end

et modifier le script mbox pour désactiver de même les e-mails pour les utilisateurs en attente qu’il crée.

Si quelqu’un a de meilleures idées, je serais intéressé de les entendre.

Êtes-vous sur la dernière version ? Il y avait un bug concernant les utilisateurs mis en file d’attente recevant un e-mail, que nous avons corrigé il y a une semaine ou deux.

Ce serait bien. Je vérifierai lundi et verrai comment annuler les modifications apportées à l’option utilisateur.

Existe-t-il un plugin pour cela ?

Ceci est un sujet très ancien et ce que je faisais lorsque j’ai écrit ceci n’est plus possible.

Il semble que j’aie ajouté cette fonction au script qui importait les utilisateurs. Si c’est quelque chose que vous voulez faire pour une raison quelconque, vous aurez probablement besoin d’un plugin pour le faire. Décrivez ce qui se passe et qui crée les utilisateurs mis en scène et qui ne devraient pas recevoir d’e-mail ; vous devrez probablement mettre à jour ce qui fait cela pour exécuter un script comme celui que j’ai inclus. Si vous avez besoin d’un plugin personnalisé pour cela, vous pouvez poster dans Marketplace ou me contacter directement.