Como uso o cancan para autorizar uma variedade de recursos?
Tenho um controlador não reparador que estou tentando usar o cancan autorize! método para aplicar permissões a.
Tenho uma ação delete_multiple que começa assim
def delete_multiple
@invoices = apparent_user.invoices.find(params[:invoice_ids])
Quero verificar se o usuário tem permissão para excluir todas essas faturas antes de continuar. Se eu usar
authorize! :delete_multiple, @invoices
permission é recusado. Minha habilidade.rb inclui o seguinte
if user.admin?
can :manage, :all
elsif user.approved_user?
can [:read, :update, :destroy, :delete_multiple], Invoice, :user_id => user.id
end
É uma questão de percorrer minha matriz e chamar autorizar individualmente ou existe uma maneira mais inteligente de fazer as coisas? Estou começando a achar que fazer autorizações seria mais fácil manualmente do que usar cancan para um controlador não reparado complicado (embora eu tenha muitos outros controladores reparadores no meu aplicativo, onde ele funciona muito bem).