使用CanCan
,可以在全局(在)load_and_authorize_resource
中调用辅助方法。这将确保所有 ActiveAdmin 控制器操作也得到固有的授权。before_filter
application_controller
但是Pundit
,没有这样的load_and_authorize_resource
辅助方法。所有 Pundit 文档和教程都在讨论调用authorize
每个操作。我可以在每个动作中调用授权。但在 ActiveAdmin 中,默认情况下不会公开这些操作。我是否应该打开每个控制器中的每个操作,authorize
然后调用然后调用super
?
这似乎是错误的。那么,有人可以告诉我如何使用 Pundit 来授权 ActiveAdmin 中的操作吗?
更新:
我知道 Pundit 授权适配器。我正在使用 AA 的主分支,并且我已将 AA 配置为使用 Pundit 适配器,如此处所述。我的问题是:如何使用适配器?通过设置config.authorization_adapter = ActiveAdmin::PunditAdapter
,是否会自动调用 ActiveAdmin 中每个操作的授权?我不这么认为。
例如,在 CanCan 中,即使在设置之后config.authorization_adapter = ActiveAdmin::CanCanAdapter
,您仍然需要将其设置load_and_authorize_resource
为全局 before_filter 才能自动授权所有 AA 操作。