¿Cómo uso cancan para autorizar una variedad de recursos?
¡Tengo un controlador tranquilo que estoy tratando de usar el cancan autorizar! método para aplicar permisos a.
Tengo una acción delete_multiple que comienza así
def delete_multiple
@invoices = apparent_user.invoices.find(params[:invoice_ids])
Quiero verificar que el usuario tenga permiso para eliminar todas estas facturas antes de continuar. Si uso
authorize! :delete_multiple, @invoices
permiso es rechazado. Mi skill.rb incluye el siguiente
if user.admin?
can :manage, :all
elsif user.approved_user?
can [:read, :update, :destroy, :delete_multiple], Invoice, :user_id => user.id
end
¿Se trata de recorrer mi matriz y llamar a autorizar individualmente o hay una forma más inteligente de hacer las cosas? Estoy empezando a sentir que hacer autorizaciones sería más fácil de forma manual que usando cancan para un controlador complicado no reparador (aunque tengo muchos otros controladores relajantes en mi aplicación donde funciona muy bien).