点击反应计数器时,若帖子被隐藏,会遇到 403 循环

后端 /discourse-reactions/app/controllers/discourse_reactions/custom_reactions_controller.rb 使用 guardian.ensure_can_see!(post) 来限制无权限用户在帖子被隐藏时加载反应数据。

然而,前端仍会渲染反应计数器,因此当用户点击隐藏帖子的反应计数器时,会出现无限加载,并在请求 /discourse-reactions/posts/xxx/reactions-users-list.json 时返回 403 禁止访问错误。

本次提交在前端添加了类似的防护逻辑:当 args.post.hidden && !args.post.can_see_hidden_post 时隐藏反应计数器,从而解决该问题。

PR: FIX: reaction counter shouldn't be visible to users without see_hidden_post permission if a post is hidden · Pull Request #40216 · discourse/discourse

1 个赞