このガイドでは、特にセルフホスティングユーザーを対象に、コンソール経由でDiscourse内の公式警告を削除する方法を説明します。
必要なユーザーレベル: システム管理者
コンソールへのアクセスが必要
特定の状況下では、ユーザーに発行された警告を取り消す必要がある場合があります。この操作は、サーバーアクセス権を持つユーザーが利用できるコンソール経由で警告を削除することを伴います。ホストされているお客様の場合は、このプロセスについてDiscourseチーム(team@discourse.org)にご連絡ください。
ユーザー警告の理解
公式警告は、Discourseデータベース内の2つのデータに関係しています。
- 警告をユーザーとトピックにリンクする
user_warningsテーブル内のレコード。- 関連するプライベートメッセージトピックの
subtypeが"moderator_warning"に設定されていること。警告を完全に元に戻すには、両方に対処する必要があります。
user_warningsレコードを削除し、トピックのサブタイプをリセットする必要があります。公式警告の削除
警告を削除するには、次の手順に従います。
サーバーコンソールへのアクセス:
- SSHを使用してDiscourseサーバーに接続します。
- 次のコマンドでコンソールに入ります。
cd /var/discourse/ ./launcher enter app rails console最新の警告の削除:
削除したい警告が最新のものである場合は、次を実行します。warning = UserWarning.last warning.topic.update(subtype: TopicSubtype.user_to_user) warning.destroy特定の警告の検索と削除:
警告が最後のものではない場合は、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は公式警告としてマーク解除されます。プライベートメッセージ自体は削除されません。
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
@JammyDodger さん。もしかしたら、「コンソール」や「rails」(あるいは「rails console」)を次のリンクに結びつける魔法のリンクが必要かもしれません。
うーん。それはいい考えですね。
でも、以前にこれで痛い目にあったことがあります。![]()
あなたがそう言ったので、今後は注意して、どれくらいの頻度で出てくるか見てみますね。![]()
ちょうど今、ドキュメントを見直しているので、この場合はガイドに完全な手順を追加するのが良いかもしれません。
あるいは、「Railsでできること」というセクションにして、Aboutやその他のもので十分かもしれません。
管理者がいつでも管理できるように、これらをペナルティとして扱い、すべての公式警告のログを記録する方がはるかに簡単ではありませんか?モデレーターが誤って似た名前のユーザーに警告し、その後、サイトのメンテナーに連絡して問題を解決してもらう必要がある場合、非常に困難になります。
ここに Feature request があると思います。
API経由でも、Railsコンソールだけでなく、これを行う方法はありますか?