class Ddr::Auth::CollectionAbilityDefinitions

Public Instance Methods

call() click to toggle source
# File lib/ddr/auth/ability_definitions/collection_ability_definitions.rb, line 5
def call
  if member_of? Ddr::Auth.collection_creators_group
    can :create, Ddr::Collection
  end
  can :export, Ddr::Collection do |obj|
    has_policy_permission?(obj, Permissions::READ)
  end
end

Private Instance Methods

has_policy_permission?(obj, perm) click to toggle source
# File lib/ddr/auth/ability_definitions/collection_ability_definitions.rb, line 22
def has_policy_permission?(obj, perm)
  policy_permissions(obj).include?(perm)
end
policy_permissions(obj) click to toggle source
# File lib/ddr/auth/ability_definitions/collection_ability_definitions.rb, line 16
def policy_permissions(obj)
  obj.policy_roles
    .select { |r| agents.include?(r.agent) }
    .map(&:permissions).flatten.uniq
end