Annulla un avviso ufficiale

:bookmark: Questa guida spiega come rimuovere un avviso ufficiale in Discourse tramite la console, rivolta in particolare agli utenti self-hosted.

:person_raising_hand: Livello utente richiesto: Amministratore di sistema
:desktop_computer: Accesso alla console richiesto

In determinate situazioni, un avviso emesso a un utente potrebbe dover essere ritirato. Questa azione comporta la rimozione dell’avviso tramite la console, accessibile a coloro che hanno accesso al server. Se sei un cliente ospitato, contatta il team di Discourse (team@discourse.org) per assistenza con questa procedura.

Comprendere gli avvisi utente

Gli avvisi ufficiali coinvolgono due elementi di dati nel database di Discourse:

  1. Un record nella tabella user_warnings che collega l’avviso a un utente e a un argomento.
  2. L’argomento del messaggio privato associato ha il suo subtype impostato su "moderator_warning".

Per annullare completamente un avviso, è necessario affrontare entrambi: il record user_warnings deve essere eliminato e il sottotipo dell’argomento deve essere reimpostato.

Rimozione di un avviso ufficiale

Per rimuovere un avviso, segui questi passaggi:

  1. Accedi alla console del server:

    • Usa SSH per connetterti al tuo server Discourse.
    • Entra nella console con i seguenti comandi:
      cd /var/discourse/
      ./launcher enter app
      rails console
      
  2. Rimuovi l’avviso più recente:
    Se l’avviso che desideri eliminare è l’ultimo, esegui:

    warning = UserWarning.last
    warning.topic.update(subtype: TopicSubtype.user_to_user)
    warning.destroy
    
  3. Trova e rimuovi un avviso specifico:
    Se l’avviso non era l’ultimo, cerca l’avviso specifico utilizzando l’user_id:

    UserWarning.where(user_id: the_user_id)
    

    Questo restituirà un array di avvisi relativi all’utente. Una volta trovato l’id corretto, eliminalo usando:

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

L’eliminazione del record di avviso e il ripristino del sottotipo dell’argomento rimuoveranno l’avviso dal conteggio degli avvisi dell’utente e deselezioneranno il PM come avviso ufficiale. Il messaggio privato stesso non verrà eliminato.

20 Mi Piace

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 Mi Piace

Ciao @JammyDodger. Forse ci deve essere un link magico che collega “console” e/o “rails” (o forse “rails console”) a

2 Mi Piace

Hmm. È un’idea. :thinking: Sono già stato scottato prima però. :slight_smile:

Terrò d’occhio ora che l’hai detto e vedrò quanto spesso si presenta. :+1:


Stiamo scorrendo la documentazione al momento, quindi forse in questo caso sarebbe bene aggiungere le istruzioni complete nella guida.

3 Mi Piace

O forse la sezione sarà “cose che puoi fare in rails” e la sezione Informazioni o quant’altro sarà sufficiente.

Non sarebbe forse molto più semplice gestirli come penalità e avere un registro di tutti gli avvertimenti ufficiali inviati agli amministratori e ai moderatori per gestirli in qualsiasi momento? Diventa molto difficile quando un moderatore avverte accidentalmente un utente con un nome simile e poi deve contattare il manutentore del sito affinché risolva il problema.

1 Mi Piace

Penso che ci sia una richiesta di funzionalità (Feature request) qui:

2 Mi Piace

C’è un modo per farlo anche tramite API e non solo tramite la console di Rails?