Desfazer um Aviso Oficial

:bookmark: Este guia explica como remover um aviso oficial no Discourse através do console, voltado particularmente para usuários de auto-hospedagem.

:person_raising_hand: Nível de usuário necessário: Administrador do Sistema
:desktop_computer: Acesso ao console necessário

Em certas situações, um aviso emitido a um usuário pode precisar ser revogado. Esta ação envolve a remoção do aviso através do console, que é acessível para aqueles com acesso ao servidor. Se você for um cliente de hospedagem, entre em contato com a equipe do Discourse (team@discourse.org) para obter assistência com este processo.

Entendendo os avisos de usuário

Avisos oficiais envolvem duas peças de dados no banco de dados do Discourse:

  1. Um registro na tabela user_warnings que vincula o aviso a um usuário e tópico.
  2. O tópico de mensagem privada associado tem seu subtype definido como "moderator_warning".

Para desfazer completamente um aviso, ambos precisam ser tratados: o registro user_warnings deve ser excluído e o subtipo do tópico deve ser redefinido.

Removendo um aviso oficial

Para remover um aviso, siga estas etapas:

  1. Acesse o console do servidor:

    • Use SSH para se conectar ao seu servidor Discourse.
    • Entre no console com os seguintes comandos:
      cd /var/discourse/
      ./launcher enter app
      rails console
      
  2. Remova o aviso mais recente:
    Se o aviso que você deseja excluir for o mais recente, execute:

    warning = UserWarning.last
    warning.topic.update(subtype: TopicSubtype.user_to_user)
    warning.destroy
    
  3. Encontre e remova um aviso específico:
    Se o aviso não foi o último, procure pelo aviso específico usando o user_id:

    UserWarning.where(user_id: the_user_id)
    

    Isso retornará um array de avisos relacionados ao usuário. Depois de encontrar o id correto, remova-o usando:

    warning = UserWarning.find(3)
    warning.topic.update(subtype: TopicSubtype.user_to_user)
    warning.destroy
    

Destruir o registro do aviso e redefinir o subtipo do tópico removerá o aviso da contagem de avisos do usuário e desmarcará a MP como um aviso oficial. A mensagem privada em si não será excluída.

20 curtidas

Is there any chance you could share the steps that I’d need to take to log in to the Console? I’ve tried Googling this but every guide seems to assume that the user will know how to do that.

Assuming you followed the standard installation guide, you would SSH into the server and run:

cd /var/discourse/
./launcher enter app
rails console
3 curtidas

Olá @JammyDodger. Talvez precise de um link mágico que ligue “console” e/ou “rails” (ou talvez “rails console”) a

2 curtidas

Hmm. Essa é uma ideia. :thinking: Já me dei mal com isso antes, porém. :slight_smile:

Vou ficar de olho agora que você mencionou e ver com que frequência aparece. :+1:


Estamos revisando a documentação no momento, então talvez neste caso seja bom adicionar as instruções completas no guia.

3 curtidas

Ou talvez a seção será “coisas que você pode fazer no rails” e o Sobre ou o que quer que seja será o suficiente.

Certamente seria muito mais fácil lidar com isso como penalidades e ter um registro de todos os avisos oficiais enviados para administradores e moderadores gerenciarem a qualquer momento? Torna-se muito difícil quando um moderador acidentalmente avisa um usuário com um nome semelhante e, em seguida, tem que entrar em contato com o mantenedor do site para que ele resolva o problema.

1 curtida

Acho que há uma solicitação de Feature aqui:

2 curtidas

Existe alguma forma de fazer isso também via API e não apenas via console do Rails?