【发布时间】:2011-03-27 01:42:25
【问题描述】:
我有一个 non-restful 控制器,我正在尝试使用 cancan 授权!方法来应用权限。
我有一个这样开始的 delete_multiple 操作
def delete_multiple
@invoices = apparent_user.invoices.find(params[:invoice_ids])
我想在继续之前检查用户是否有权删除所有这些发票。如果我使用
authorize! :delete_multiple, @invoices
权限被拒绝。我的能力.rb 包括以下内容
if user.admin?
can :manage, :all
elsif user.approved_user?
can [:read, :update, :destroy, :delete_multiple], Invoice, :user_id => user.id
end
是循环遍历我的数组并单独调用授权还是有更聪明的做事方式?我开始觉得手动进行授权比使用 cancan 来处理复杂的非 RESTful 控制器更容易(尽管我的应用中有很多其他的 RESTful 控制器,它们都很好用)。
【问题讨论】:
标签: ruby-on-rails authorization cancan