Richie
(Richie Rich)
Setembro 12, 2025, 7:39am
1
Quando um usuário é excluído ao ter seu primeiro post rejeitado, ele recebe um e-mail com o assunto Sua conta foi excluída.
Há um bug no corpo/conteúdo do e-mail, ele parece estar exibindo uma sintaxe de hash Ruby no meio do e-mail:
Olá,
Esta é uma mensagem automática de NOME DO SITE para informar que a conta de usuário associada a este endereço de e-mail foi excluída por um membro da equipe.
{:off_topic=>“Seu post foi sinalizado como fora do tópico : a comunidade sente que não se encaixa bem no tópico, conforme definido atualmente pelo título e pelo primeiro post.”, :inappropriate=>“Seu post foi sinalizado como inapropriado : a comunidade sente que é ofensivo, abusivo, conduta de ódio ou uma violação de nossas diretrizes da comunidade.”, :illegal=>“Seu post foi sinalizado como ilegal : a comunidade acha que pode estar infringindo a lei.”, :spam=>“Seu post foi sinalizado como spam : a comunidade sente que é um anúncio, algo excessivamente promocional em vez de útil ou relevante para o tópico, como esperado.”, :notify_moderators=>“Seu post foi sinalizado para atenção do moderador : a comunidade sente que algo no post requer intervenção manual por um membro da equipe.”, :responder=>{:off_topic=>“O post foi sinalizado como fora do tópico : a comunidade sente que não se encaixa bem no tópico, conforme definido atualmente pelo título e pelo primeiro post.”, :inappropriate=>“O post foi sinalizado como inapropriado : a comunidade sente que é ofensivo, abusivo, conduta de ódio ou uma violação de nossas diretrizes da comunidade.”, :spam=>“O post foi sinalizado como spam : a comunidade sente que é um anúncio, algo excessivamente promocional em vez de útil ou relevante para o tópico, como esperado.”, :notify_moderators=>“O post foi sinalizado para atenção do moderador : a comunidade sente que algo no post requer intervenção manual por um membro da equipe.”}}
Por favor, revise nossas diretrizes da comunidade para mais detalhes.
Passos para replicar:
Certifique-se de que o Discourse exija que o primeiro post de cada usuário seja aprovado
Crie um novo usuário
Crie um novo post com o novo usuário
Usando uma conta de administrador, rejeite o post com a opção “Excluir usuário”
O novo usuário recebe um e-mail com o conteúdo acima
2 curtidas
Richie
(Richie Rich)
Setembro 12, 2025, 7:41am
2
Se ajudar, alguns prints da visualização de administrador da postagem rejeitada:
Antes de excluir o usuário:
Após a rejeição e exclusão:
1 curtida
selase
(Selase Krakani)
Dividiu este tópico
Novembro 18, 2025, 11:45am
3
selase
(Selase Krakani)
Setembro 12, 2025, 6:24pm
4
Isso parece ser um bug na forma como flag_reason é gerado aqui:
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ão inclui a flag :needs_approval (que é criada no fluxo descrito). Por causa disso, a chave de tradução se resolve para flag_reasons. (sem sufixo), que retorna toda a seção YAML em vez de uma entrada única. É por isso que há um hash Ruby no lugar da razão da flag.
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."
Relacionado a isso, isso provavelmente também afeta flags personalizadas, já que suas traduções também estariam faltando.
7 curtidas
Moin
Setembro 12, 2025, 6:43pm
6
Tenho certeza que sim. Mencionei isso em maio
Moin:
Moin:
Nota lateral:
3 curtidas
selase
(Selase Krakani)
Novembro 18, 2025, 11:51am
7
Corrigimos o problema mencionado no OP. Movi o relatório relacionado a usuários em estágio para um tópico separado para facilitar o acompanhamento enquanto aguardamos uma correção.
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 curtida