Module: Ddr::Auth::LegacyRoles

Extended by:
ActiveSupport::Concern
Included in:
Models::HasAdminMetadata
Defined in:
lib/ddr/auth/legacy_roles.rb

Constant Summary collapse

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

Instance Method Summary collapse

Instance Method Details

#legacy_downloader_to_resource_rolesObject



8
9
10
11
12
13
# File 'lib/ddr/auth/legacy_roles.rb', line 8

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

#principal_has_role?(principal, role) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/ddr/auth/legacy_roles.rb', line 15

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

#principals(role) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/ddr/auth/legacy_roles.rb', line 19

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