Richie
(Richie Rich)
Septembre 12, 2025, 7:39
1
Lorsqu’un utilisateur est supprimé en rejetant son premier message, il reçoit un e-mail dont l’objet est « Votre compte a été supprimé ».
Il y a un bug dans le corps/contenu de l’e-mail, il semble afficher une sorte de syntaxe Ruby hash dans la section centrale de l’e-mail :
Bonjour,
Ceci est un message automatisé de NOM DU SITE pour vous informer que le compte utilisateur associé à cette adresse e-mail a été supprimé par un membre du personnel.
{:hors_sujet=>« Votre message a été signalé comme hors sujet : la communauté estime qu’il ne correspond pas au sujet, tel que défini actuellement par le titre et le premier message. », :inapproprié=>« Votre message a été signalé comme inapproprié : la communauté estime qu’il est offensant, abusif, qu’il s’agit d’une conduite haineuse ou d’une violation de nos directives communautaires. », :illégal=>« Votre message a été signalé comme illégal : la communauté pense qu’il pourrait enfreindre la loi. », :spam=>« Votre message a été signalé comme spam : la communauté estime qu’il s’agit d’une publicité, quelque chose de trop promotionnel au lieu d’être utile ou pertinent pour le sujet attendu. », :notifier_modérateurs=>« Votre message a été signalé pour attention des modérateurs : la communauté estime que quelque chose dans le message nécessite une intervention manuelle par un membre du personnel. », :répondant=>{:hors_sujet=>« Le message a été signalé comme hors sujet : la communauté estime qu’il ne correspond pas au sujet, tel que défini actuellement par le titre et le premier message. », :inapproprié=>« Le message a été signalé comme inapproprié : la communauté estime qu’il est offensant, abusif, qu’il s’agit d’une conduite haineuse ou d’une violation de nos directives communautaires. », :spam=>« Le message a été signalé comme spam : la communauté estime qu’il s’agit d’une publicité, quelque chose de trop promotionnel au lieu d’être utile ou pertinent pour le sujet attendu. », :notifier_modérateurs=>« Le message a été signalé pour attention des modérateurs : la communauté estime que quelque chose dans le message nécessite une intervention manuelle par un membre du personnel. »}}
Veuillez consulter nos directives communautaires pour plus de détails.
Étapes pour reproduire :
Assurez-vous que Discourse exige que le premier message de chaque utilisateur soit approuvé
Créez un nouvel utilisateur
Créez un nouveau message avec le nouvel utilisateur
En utilisant un compte administrateur, rejetez le message avec l’option « Supprimer l’utilisateur »
Le nouvel utilisateur reçoit un e-mail avec le contenu ci-dessus
2 « J'aime »
Richie
(Richie Rich)
Septembre 12, 2025, 7:41
2
Si cela peut aider, voici quelques captures d’écran de la vue administrateur du message rejeté :
Avant la suppression de l’utilisateur :
Après le rejet et la suppression :
1 « J'aime »
selase
(Selase Krakani)
A scindé ce sujet ()
Novembre 18, 2025, 11:45
3
selase
(Selase Krakani)
Septembre 12, 2025, 6:24
4
Cela ressemble à un bug dans la façon dont flag_reason est généré ici :
def account_deleted(email, reviewable)
post_action_type_id =
reviewable.reviewable_scores.first&.reviewable_score_type ||
PostActionTypeView.new.types[:spam]
build_email(
email,
template: "user_notifications.account_deleted",
flag_reason: I18n.t("flag_reasons.#{PostActionTypeView.new.types[post_action_type_id]}"),
)
end
PostActionTypeView.new.types n’inclut pas le drapeau :needs_approval (qui est créé dans le flux décrit). Pour cette raison, la clé de traduction se résout en flag_reasons. (sans suffixe), ce qui renvoie la section YAML entière au lieu d’une seule entrée. C’est pourquoi il y a une table de hachage Ruby à la place de la raison du drapeau.
flag_reasons:
off_topic: "Your post was flagged as **off-topic**: the community feels it is not a good fit for the topic, as currently defined by the title and the first post."
inappropriate: "Your post was flagged as **inappropriate**: the community feels it is offensive, abusive, to be hateful conduct or a violation of [our community guidelines](%{base_path}/guidelines)."
illegal: "Your post was flagged as **illegal**: the community thinks it might be breaking the law."
spam: "Your post was flagged as **spam**: the community feels it is an advertisement, something that is overly promotional in nature instead of being useful or relevant to the topic as expected."
notify_moderators: "Your post was flagged **for moderator attention**: the community feels something about the post requires manual intervention by a staff member."
responder:
off_topic: "The post was flagged as **off-topic**: the community feels it is not a good fit for the topic, as currently defined by the title and the first post."
inappropriate: "The post was flagged as **inappropriate**: the community feels it is offensive, abusive, to be hateful conduct or a violation of [our community guidelines](%{base_path}/guidelines)."
spam: "The post was flagged as **spam**: the community feels it is an advertisement, something that is overly promotional in nature instead of being useful or relevant to the topic as expected."
notify_moderators: "The post was flagged **for moderator attention**: the community feels something about the post requires manual intervention by a staff member."
Parallèlement, cela affecte probablement aussi les drapeaux personnalisés, car leurs traductions seraient également manquantes.
7 « J'aime »
Moin
Septembre 12, 2025, 6:43
6
Je suis sûr que oui. Je l’ai mentionné en mai
Moin:
Moin:
Note annexe :
3 « J'aime »
selase
(Selase Krakani)
Novembre 18, 2025, 11:51
7
Nous avons fusionné un correctif pour le problème dans le message initial. J’ai déplacé le rapport concernant les utilisateurs mis en scène dans son propre sujet pour faciliter le suivi en attendant un correctif.
main ← fix/deleted-user-email
opened 04:43PM - 24 Sep 25 UTC
`UserNotifications#account_deleted` builds a localized flag reason from the revi… ewable’s first `reviewable_score` (falling back to `spam` if none is found).
Currently, some score types (e.g. `needs_approval`) are not covered. In cases where a "Needs Approval" flag led to an account deletion, the lookup key could end up as `flag_reasons.`, causing the entire `flag_reasons`
section to be rendered instead of a single entry.
This change adds support for additional score types (like `needs_approval`). If no translation exists (e.g. custom flags), the flag’s description will be used if available, before falling back to the default `spam` reason.
More context: https://meta.discourse.org/t/ruby-hash-syntax-being-displayed-in-emails-sent-to-deleted-users/382411
1 « J'aime »