新しいレビューキュー(2019)に関するフィードバック

ええ、全く構いません。むしろ、ドロップダウンボタンの主要なアクションを「ユーザー削除」にし、ドロップダウンを使って「ユーザーの一時停止」を選択できるようにするのが理想的です。こうすれば、SSO 設定がほとんどない場合、追加の作業は不要になりますが、SSO 環境にあるユーザーにとっては、削除する代わりにユーザーを一時停止する簡単な方法が提供されます。

「いいね!」 3

@Roman これをリストに追加しますか?SSO を使用しているサイトには役立つと思います。

「いいね!」 7

レビューキューからユーザーを削除すると、「404 Not Found」のポップアップが表示されます:

(最新バージョンに更新しましたが、問題は解消されていません)

「いいね!」 3

確認します。これらのユーザーは承認を待っているのでしょうか?

「いいね!」 3

承認済み:スパム行為が報告されたユーザーの削除。

「いいね!」 2

さっき気づいたのですが、同じことが起こらない別のサイトも私が管理しています。これは最近、削除されたユーザーに関連する変更があったFollow Plugin :man:が関係しているのではないかと疑っています。@merefield はいかがでしょうか?

「いいね!」 1

現時点ではわかりません。もう少し具体的に教えていただけますか?ログの証拠はありますか?

ブラウザの「Network」タブ:その 404 の URL は何ですか?

私が知っている現在のプラグインに関する(軽微な)問題は、プラグインをアンインストールする際に、関連する通知を手動で削除する必要があることです(プラグインの OP にスクリプトがあります)。これは削除されたユーザーとは関係ありません。

「いいね!」 1

ローカル環境でも問題の再現ができませんでした。エラーメッセージから、フロントエンドが存在しないエンドポイントに AJAX リクエストを送信しているように思われます。@bartv 削除操作を実行した後のブラウザのネットワークタブのスクリーンショットを共有していただけますか?

このように表示されるかどうか確認したいです:

「いいね!」 4

次回そのようにします :+1:

「いいね!」 1

このプラグインは UserDestroyer をマングリーパッチしており、レビューキューから削除アクションを実行した際に呼び出されます。これは疑わしく見えます:

何らかの理由で following_ids に無効な ID が含まれている場合、User#find が例外を発生させ、ユーザーは「404 Not Found」メッセージを表示することになります。代わりに User.find_by(id: ...) を使用することを推奨します。

@bartv のサイトで何が起きたのかを DB を確認せずに判断することはできません。次回同様のことが起きた際は、フラグが付けられたユーザーの following_ids を確認することをお勧めします。

「いいね!」 4

ありがとうございます。その通りで、非常に有益なハイライトです。

それでも、ログとその 404 URL の確認は引き続き希望しています。

これをもっと堅牢にする方法は、他にもあるかもしれません。

「いいね!」 4

プッシュしました: FIX: make code invoked when deleting users more robust · discourse/discourse-follow@b523b3a · GitHub ありがとうございます!

「いいね!」 3

このアクションを追加する PR をマージしました。「確認」「確認+削除」「確認+保留」が今ではまとめて提供されます:

「いいね!」 4

Follow プラグインを削除しましたが、問題は解消されませんでした。Rails ログには以下が表示されます:

Started PUT "/review/6793/perform/reject_user_block?version=0" for xx.xx.xx.xx at 2020-09-03 09:45:48 +0000
Processing by ReviewablesController#perform as */*
  Parameters: {"version"=>"0", "reviewable_id"=>"6793", "action_id"=>"reject_user_block"}
Job exception: undefined method `strip' for nil:NilClass

  Rendering text template
  Rendered text template (Duration: 0.0ms | Allocations: 1)
Started GET "/t/global-variables/331828" for xx.xx.xx.xx at 2020-09-03 09:45:48 +0000
Processing by TopicsController#show as HTML
  Parameters: {"slug"=>"global-variables", "topic_id"=>"331828"}
Completed 404 Not Found in 292ms (ActiveRecord: 0.0ms | Allocations: 124598)
ActiveRecord::RecordNotFound (Couldn't find all Topics with 'id': (1185852, 1185853, 1186324, 1186929, 1191089) [WHERE ("topics"."deleted_at" IS NULL)] (found 4 results, but was looking for 5).)
lib/plugin/instance.rb:393:in `block in on'
lib/discourse_event.rb:14:in `block in trigger'
lib/discourse_event.rb:13:in `trigger'
app/models/user.rb:1567:in `trigger_user_destroyed_event'
app/models/reviewable.rb:353:in `perform'
app/controllers/reviewables_controller.rb:192:in `perform'
app/controllers/application_controller.rb:340:in `block in with_resolved_locale'
app/controllers/application_controller.rb:340:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:336:in `call'
config/initializers/008-rack-cors.rb:25:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:22:in `call'
lib/middleware/request_tracker.rb:176:in `call'

ActiveRecord::RecordNotFound の行が興味深いです。レビューキューからユーザーを削除しようとするたびに、このエラーが同じトピック ID で発生しています。

トピック ID を確認したところ、これらはすべて Events プラグインを使用する投稿であることがわかりました。そして、そのうちの 1 つが削除されていました。なぜレビューキューからのこのアクションがこれらをチェックする必要があるのか、不思議です。

@merefield さん、また皆さんにお世話になってしまい、申し訳ありません :slight_smile:

編集: プラグインのリンクを変更しました

「いいね!」 3

これはコアプラグインです。

「いいね!」 1

ちょっと待って、私は

git clone GitHub - angusmcleod/discourse-events: Allows you to manage events in Discourse · GitHub

を使っていますが、これは(もう)正しいものではありませんか?(たぶん、そこに間違ったページへのリンクを貼ってしまっていたので、修正します)

「いいね!」 1

それはイベントです。@fzngagan さん、ご意見はありますか?

「いいね!」 3

クリックすると、正しいリポジトリに移動します。

「いいね!」 1

ハハ、いいえ、レビューキューからユーザーを削除することに関する問題のことです。

「いいね!」 4

これはプラグインに関連するものではなく、コアのライブラリファイルです。

なぜイベントが関与しているとお考えなのでしょうか?

「いいね!」 3