Sha256: 4ca2e378bd21727588776e6492f49b8d054673c3601da44280ae1332ba8adbc1

Contents?: true

Size: 745 Bytes

Versions: 2

Compression:

Stored size: 745 Bytes

Contents

module Ddr
  module Auth
    module LegacyRoles
      extend ActiveSupport::Concern

      LEGACY_ROLES = [:administrator, :editor, :downloader, :contributor]

      def legacy_downloader_to_resource_roles
        principals(:downloader).map do |name|
          agent_type = (name =~ /@/ ? :person : :group)
          Roles::Downloader.build(agent_type=>name, :scope=>:resource)
        end
      end      

      def principal_has_role?(principal, role)
        ( principals(role) & Array(principal) ).any?
      end

      def principals(role)
        if LEGACY_ROLES.include?(role)
          adminMetadata.send(role)
        else
          raise ArgumentError, "#{role.inspect} is not a legacy role."
        end
      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ddr-models-1.13.1 lib/ddr/auth/legacy_roles.rb
ddr-models-1.13.0 lib/ddr/auth/legacy_roles.rb