Sha256: b5b0204723d4e20ad22ce1509179423feb02b9fc0821b7347eca7a8a87e7b3a0

Contents?: true

Size: 635 Bytes

Versions: 42

Compression:

Stored size: 635 Bytes

Contents

module Ddr
  module Auth
    class CollectionAbilityDefinitions < AbilityDefinitions

      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

      def policy_permissions(obj)
        obj.policy_roles
          .select { |r| agents.include?(r.agent) }
          .map(&:permissions).flatten.uniq
      end

      def has_policy_permission?(obj, perm)
        policy_permissions(obj).include?(perm)
      end

    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
ddr-core-1.16.0 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.15.0 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.14.0 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.13.2 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.13.1 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.13.0 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.12.2 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.12.1 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.12.0 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.11.0 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.10.0 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.9.0 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.8.0 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.7.0 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.6.6 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.6.5 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.6.4 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.6.3 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.6.2 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
ddr-core-1.6.1 lib/ddr/auth/ability_definitions/collection_ability_definitions.rb