需要帮助授权Pundit的索引操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要帮助授权Pundit的索引操作相关的知识,希望对你有一定的参考价值。

我在我的应用程序上使用Pundit和Devise。我的索引操作在我的wikis_controller中看起来像这样:

  def index
    @wikis = current_user.wikis
    authorize @wikis
  end

我正在尝试阻止未登录的用户访问此索引操作,但@wikis已设置为undefined,因为没有用户登录。作为回报,它不是授权。

我怎样才能解决这个问题?

答案

您可以针对模型而不是对象进行授权。

代码

authorize Wiki

会触发索引吗?没有用户对象的权威策略中的操作。此外,您可以使用范围来过滤另一个级别https://github.com/varvet/pundit#scopes上的数据。

以上是关于需要帮助授权Pundit的索引操作的主要内容,如果未能解决你的问题,请参考以下文章

我的毁灭?和upvote?即使我已授权他们,也不与Pundit合作的方法

Ruby Pundit 授权用户和合作者

Pundit 政策的嵌套资源

Rails 6 - Pundit“策略包装器”

普通lisp的授权库[关闭]

Rails 4 - pundit - 如何编写 if 语句来检查用户权限