NoMethodError (未定义方法 `id' 用于 # Guardian…

我已经收到这些消息一段时间了。一切似乎都在工作,但我当然不知道幕后发生了什么。我应该担心还是该做些什么?这是由于尝试删除匿名帖子引起的吗?

Discourse 已于大约 10 小时前更新……

消息(已报告 16 份副本)

NoMethodError (未定义方法 `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 :rofl:

我有一个用户因为某些原因没有确认电子邮件,系统几天前删除了他的账户。他所做的只是点赞,仅此而已。现在我有一种感觉(抱歉我无法提供更确凿的信息),错误似乎在同一时间开始出现。

1 个赞

它以某种方式连接到 Discourse Reactions,因此点赞可能很重要。

他们是如何在未先验证其电子邮件/激活其帐户的情况下进行交互的?

好问题。

我安装了 https://meta.discourse.org/t/disable-email-verification-for-discourse-plugin/280874,但在那个时候它被禁用了。它会以某种方式泄露吗?但仍然……我不遵守常规规则,因为我没有垃圾邮件问题(成为少数民族语言群体的好处……),所以我会在注册后立即授予 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)