公式警告の取り消し

:bookmark: このガイドでは、特にセルフホスティングユーザーを対象に、コンソール経由でDiscourse内の公式警告を削除する方法を説明します。

:person_raising_hand: 必要なユーザーレベル: システム管理者
:desktop_computer: コンソールへのアクセスが必要

特定の状況下では、ユーザーに発行された警告を取り消す必要がある場合があります。この操作は、サーバーアクセス権を持つユーザーが利用できるコンソール経由で警告を削除することを伴います。ホストされているお客様の場合は、このプロセスについてDiscourseチーム(team@discourse.org)にご連絡ください。

ユーザー警告の理解

公式警告は、Discourseデータベース内の2つのデータに関係しています。

  1. 警告をユーザーとトピックにリンクするuser_warningsテーブル内のレコード。
  2. 関連するプライベートメッセージトピックのsubtype"moderator_warning"に設定されていること。

警告を完全に元に戻すには、両方に対処する必要があります。user_warningsレコードを削除し、トピックのサブタイプをリセットする必要があります。

公式警告の削除

警告を削除するには、次の手順に従います。

  1. サーバーコンソールへのアクセス:

    • SSHを使用してDiscourseサーバーに接続します。
    • 次のコマンドでコンソールに入ります。
      cd /var/discourse/
      ./launcher enter app
      rails console
      
  2. 最新の警告の削除:
    削除したい警告が最新のものである場合は、次を実行します。

    warning = UserWarning.last
    warning.topic.update(subtype: TopicSubtype.user_to_user)
    warning.destroy
    
  3. 特定の警告の検索と削除:
    警告が最後のものではない場合は、user_idを使用して特定の警告を検索します。

    UserWarning.where(user_id: the_user_id)
    

    これにより、そのユーザーに関連する警告の配列が返されます。正しいidを見つけたら、次を使用して削除します。

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

警告レコードを破棄し、トピックのサブタイプをリセットすると、警告はユーザーの警告カウントから削除され、PMは公式警告としてマーク解除されます。プライベートメッセージ自体は削除されません。

「いいね!」 20

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

@JammyDodger さん。もしかしたら、「コンソール」や「rails」(あるいは「rails console」)を次のリンクに結びつける魔法のリンクが必要かもしれません。

「いいね!」 2

うーん。それはいい考えですね。:thinking: でも、以前にこれで痛い目にあったことがあります。:slight_smile:

あなたがそう言ったので、今後は注意して、どれくらいの頻度で出てくるか見てみますね。:+1:


ちょうど今、ドキュメントを見直しているので、この場合はガイドに完全な手順を追加するのが良いかもしれません。

「いいね!」 3

あるいは、「Railsでできること」というセクションにして、Aboutやその他のもので十分かもしれません。

管理者がいつでも管理できるように、これらをペナルティとして扱い、すべての公式警告のログを記録する方がはるかに簡単ではありませんか?モデレーターが誤って似た名前のユーザーに警告し、その後、サイトのメンテナーに連絡して問題を解決してもらう必要がある場合、非常に困難になります。

「いいね!」 1

ここに Feature request があると思います。

「いいね!」 2

API経由でも、Railsコンソールだけでなく、これを行う方法はありますか?