Canard::Abilities.for(<%= ":#{name}" -%>) do <% if ability_definitions.empty? -%> # Define abilities for the user role here. For example: # # if user.admin? # can :manage, :all # else # can :read, :all # end # # The first argument to `can` is the action you are giving the user permission to do. # If you pass :manage it will apply to every action. Other common actions here are # :read, :create, :update and :destroy. # # The second argument is the resource the user can perform the action on. If you pass # :all it will apply to every resource. Otherwise pass a Ruby class of the resource. # # The third argument is an optional hash of conditions to further filter the objects. # For example, here the user can only update published articles. # # can :update, Article, published: true # # See the wiki for details: https://github.com/CanCanCommunity/cancancan/wiki/Defining-Abilities <% else -%> <% definitions do |model, definition| -%> <%= "can #{definition.cans.map(&:to_sym)}, #{model.classify}" unless definition.cans.empty? %> <%= "cannot #{definition.cannots.map(&:to_sym)}, #{model.classify}" unless definition.cannots.empty? %> <% end -%> <% end -%> end