Annuler un avertissement officiel

:bookmark: Ce guide explique comment supprimer un avertissement officiel dans Discourse via la console, particulièrement destiné aux utilisateurs auto-hébergés.

:person_raising_hand: Niveau d’utilisateur requis : Administrateur Système
:desktop_computer: Accès à la console requis

Dans certaines situations, un avertissement émis à un utilisateur pourrait devoir être retiré. Cette action implique la suppression de l’avertissement via la console, laquelle est accessible à ceux ayant un accès au serveur. Si vous êtes un client hébergé, veuillez contacter l’équipe Discourse (team@discourse.org) pour obtenir de l’aide concernant cette procédure.

Comprendre les avertissements utilisateurs

Les avertissements officiels impliquent deux éléments de données dans la base de données Discourse :

  1. Un enregistrement dans la table user_warnings liant l’avertissement à un utilisateur et à un sujet.
  2. Le sujet de message privé associé a son subtype défini sur \"moderator_warning\".

Pour annuler complètement un avertissement, les deux doivent être traités : l’enregistrement user_warnings doit être supprimé et le subtype du sujet doit être réinitialisé.

Suppression d’un avertissement officiel

Pour supprimer un avertissement, suivez ces étapes :

  1. Accéder à la console du serveur :

    • Utilisez SSH pour vous connecter à votre serveur Discourse.
    • Entrez dans la console avec les commandes suivantes :
      cd /var/discourse/
      ./launcher enter app
      rails console
      
  2. Supprimer le dernier avertissement :
    Si l’avertissement que vous souhaitez supprimer est le plus récent, exécutez :

    warning = UserWarning.last
    warning.topic.update(subtype: TopicSubtype.user_to_user)
    warning.destroy
    
  3. Trouver et supprimer un avertissement spécifique :
    Si l’avertissement n’était pas le dernier, recherchez l’avertissement spécifique en utilisant l’user_id :

    UserWarning.where(user_id: the_user_id)
    

    Ceci retournera un tableau d’avertissements liés à l’utilisateur. Une fois que vous avez trouvé l’id correct, supprimez-le en utilisant :

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

La destruction de l’enregistrement de l’avertissement et la réinitialisation du subtype du sujet supprimeront l’avertissement du compte d’avertissements de l’utilisateur et désigneront le MP comme n’étant plus un avertissement officiel. Le message privé lui-même ne sera pas supprimé.

20 « J'aime »

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 « J'aime »

Salut @JammyDodger. Peut-être qu’un lien magique doit être créé pour lier « console » et/ou « rails » (ou peut-être « rails console ») à

2 « J'aime »

Hmm. C’est une idée. :thinking: J’ai déjà eu de mauvaises expériences avec ça. :slight_smile:

Je vais garder un œil dessus maintenant que vous l’avez dit et voir à quelle fréquence cela se présente. :+1:


Nous sommes en train de parcourir la documentation en ce moment, donc peut-être que dans ce cas, il serait bon d’ajouter les instructions complètes dans le guide.

3 « J'aime »

Ou peut-être que la section sera « choses que vous pouvez faire dans Rails » et que le « À propos » ou autre sera suffisant.

Ne serait-il pas beaucoup plus simple de les gérer comme des pénalités et d’avoir un journal de tous les avertissements officiels envoyés pour que les administrateurs et les modérateurs puissent les gérer à tout moment ? Il est très difficile pour un modérateur d’avertir accidentellement un utilisateur portant un nom similaire, puis de devoir contacter le mainteneur du site pour qu’il résolve le problème.

1 « J'aime »

Je pense qu’il y a une demande de #fonctionnalité ici :

2 « J'aime »

Existe-t-il un moyen de faire cela également via l’API et pas seulement via la console Rails ?