PostGuardian の can_delete_post における nil 参照

PostGuardian.can_delete_post には user の参照が含まれており、ログインしているユーザーがいない場合に呼び出されるとクラッシュします。プラグインから呼び出しているため、現時点ではコアでは発生しないかもしれません。

これはこちらで発生しています。

return true if user.in_any_groups?(SiteSetting.delete_all_posts_and_topics_allowed_groups_map)

提案としては、セーブナビゲーション演算子 &. を使用するか、return true if user && user.in_any_groups? ... に変更することです。

「いいね!」 3

この件については、常に権限を持つユーザーとして @system を使用していただけますでしょうか?(また、コアもそうではありませんか?)

理解していただけていないようです。

ユーザーがいないことは問題ではなく(そして「ユーザーがいない」は「権限がない」に等しいはずです)、問題は、コードがユーザーがいることを確認せずに前提としているため、「何もない」がどのグループに含まれているかを確認しようとすることです。

「いいね!」 1