NoMethodError (undefined method `id' for # Guardian…

これらのメッセージが数日間表示されています。すべて機能しているようですが、内部で何が起こっているのかはまったくわかりません。心配すべきですか、それとも何かする必要がありますか?匿名投稿の削除を試みた結果でしょうか?

Discourse は約10時間前に更新されました…

メッセージ(16件のコピーが報告されました)

NoMethodError (undefined method `id' for #<Guardian::AnonymousUser:0x00007f5fe7ae9ea0>)
lib/guardian.rb:624:in `is_my_own?'
lib/guardian/post_guardian.rb:262:in `can_delete_post_action?'
app/controllers/application_controller.rb:422:in `block in with_resolved_locale'
app/controllers/application_controller.rb:422:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:387:in `call'
lib/middleware/gtm_script_nonce_injector.rb:10:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:233:in `call'

バックトレース

lib/guardian.rb:624:in `is_my_own?'
lib/guardian/post_guardian.rb:262:in `can_delete_post_action?'
plugins/discourse-reactions/app/controllers/discourse_reactions/custom_reactions_controller.rb:230:in `format_like_user'
plugins/discourse-reactions/app/controllers/discourse_reactions/custom_reactions_controller.rb:236:in `block in format_likes_users'
activerecord (7.0.7) lib/active_record/relation/delegation.rb:88:in `each'
activerecord (7.0.7) lib/active_record/relation/delegation.rb:88:in `each'
plugins/discourse-reactions/app/controllers/discourse_reactions/custom_reactions_controller.rb:236:in `map'
plugins/discourse-reactions/app/controllers/discourse_reactions/custom_reactions_controller.rb:236:in `format_likes_users'
plugins/discourse-reactions/app/controllers/discourse_reactions/custom_reactions_controller.rb:160:in `post_reactions_users'
actionpack (7.0.7) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'

環境

HTTP HOSTS: foorumi.katiska.eu
「いいね!」 1

間違っているかもしれませんが、匿名モードのユーザーが投稿の削除に苦労しているようです。

そんなケースは絶対にないと思います。バックグラウンドで何か自動的な処理が実行されているのだと思いますが、それも理解できません。

私のフォーラムでは、匿名投稿はほとんどなく、あったとしても通常のユーザーによるものでした。古い、関連性のないトピックを削除した可能性はありますが、匿名ユーザーがいたとは記憶していません。そして、私のフォーラムはトラフィックが非常に少ないため、SQLよりも記憶に頼ることができます🤣

理由あってメールアドレスを確認しなかったユーザーが一人いて、数日前にシステムがそのアカウントを削除しました。そのユーザーは「いいね」をしただけで、それ以外は何もしていませんでした。そして今、エラーが出始めたのはその時期と同じ頃ではないかという気がしています(より確かな情報を提供できず申し訳ありません)。

「いいね!」 1

これはDiscourse Reactionsに何らかの形で接続されているため、いいねの付与が関連している可能性があります。

メールアドレスの確認/アカウントの有効化をせずに、どのようにやり取りできたのでしょうか?

良い質問ですね。

Disable Email Verification for Discourse Plugin をインストールしましたが、その時は無効になっていました。何らかの方法で漏洩したのでしょうか?しかし… スパムの問題がない(言語マイノリティであることの利点の一つ…)ため、一般的なルールに従っていません。登録後すぐにTL1を付与しているので、それが原因で問題が発生する可能性もありますか?

それで… 掘り下げ始めることができるものはありますか?そして最も重要な質問:何もしなかったら世界は終わるのでしょうか?

「いいね!」 1

自動TL1、あるいはdisable email verificationと関係があるのかもしれません。このユーザーで何度も同じことが起きています。

id: 606
username: saja
name: Saja
created_at: 2023-10-28 14:34:13 UTC
trust_level: 1
last_seen_at:
last_emailed_at:

10月2日、10月28日、10月12日、9月27日。奇妙なのは、管理者のログにそのユーザーのIPアドレスが表示されないことです。アクティブでないアカウントの他のすべての削除ではIPが表示されます。

どうやら allow_anonymous_likes 設定に何らかの形で関連しているようです。

同じエラーを再現できるか少し試してみましたが、匿名モードに入って「いいね!」やリアクションをいくつか行い、その後それらを削除したり、投稿を削除したりしてもトリガーされませんでした。また、途中で allow_anonymous_likes をオフにしましたが、競合はなく、単に削除できなくなるだけでした。post undo action window mins 設定も尊重されていました。

よくわかりません。:thinking:

「いいね!」 1

すみません、私のプラグインが原因である可能性があります。それを無効にして、問題が解決するかどうか確認していただけますか?あまり作業する時間がありませんでしたが、私のプラグインに関連している場合はお知らせください。確認します。プラグインのユーザーにできる限りのサポートを提供したいと考えています。

こちらで有効にしていますが、スレッドで明示的に言及されている問題以外は何もありません。(ただし、あなたがお持ちの自動TL1は私にはありません)