Module: Ddr::HasAdminMetadata

Extended by:
ActiveSupport::Concern
Included in:
Resource
Defined in:
app/models/concerns/ddr/has_admin_metadata.rb

Constant Summary collapse

TERMS =
{ access_role:            Valkyrie::Types::Set.of(Ddr::Auth::Roles::Role),
  admin_set:              Valkyrie::Types::Strict::String.optional,
  affiliation:            Valkyrie::Types::Set,
  aleph_id:               Valkyrie::Types::Strict::String.optional,
  aspace_id:              Valkyrie::Types::Strict::String.optional,
  contentdm_id:           Valkyrie::Types::Strict::String.optional,
  depositor:              Valkyrie::Types::Strict::String.optional,
  display_format:         Valkyrie::Types::Strict::String.optional,
  doi:                    Valkyrie::Types::Strict::String.optional,
  ead_id:                 Valkyrie::Types::Strict::String.optional,
  fcrepo3_pid:            Valkyrie::Types::Strict::String.optional,
  ingested_by:            Valkyrie::Types::Strict::String.optional,
  ingestion_date:         Valkyrie::Types::DateTime.optional,
  is_locked:              Valkyrie::Types::Strict::Bool.optional,
  license:                Valkyrie::Types::Strict::String.optional,
  local_id:               Valkyrie::Types::Strict::String.optional,
  nested_path:            Valkyrie::Types::Strict::String.optional,
  permanent_id:           Valkyrie::Types::Strict::String.optional,
  permanent_url:          Valkyrie::Types::Strict::String.optional,
  research_help_contact:  Valkyrie::Types::Strict::String.optional,
  rights_note:            Valkyrie::Types::Set,
  workflow_state:         Valkyrie::Types::Strict::String.optional
}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.term_namesObject



29
30
31
# File 'app/models/concerns/ddr/has_admin_metadata.rb', line 29

def self.term_names
  TERMS.keys
end

Instance Method Details

#effective_permissions(agents) ⇒ Object



79
80
81
# File 'app/models/concerns/ddr/has_admin_metadata.rb', line 79

def effective_permissions(agents)
  Ddr::Auth::EffectivePermissions.call(self, agents)
end

#effective_roles(agents = nil) ⇒ Object



75
76
77
# File 'app/models/concerns/ddr/has_admin_metadata.rb', line 75

def effective_roles(agents = nil)
  Ddr::Auth::EffectiveRoles.call(self, agents)
end

#finding_aidObject



83
84
85
86
87
# File 'app/models/concerns/ddr/has_admin_metadata.rb', line 83

def finding_aid
  if ead_id
    FindingAid.new(ead_id)
  end
end

#inherited_rolesObject



71
72
73
# File 'app/models/concerns/ddr/has_admin_metadata.rb', line 71

def inherited_roles
  ( has_admin_policy? && admin_policy.policy_roles ) || []
end

#locked?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'app/models/concerns/ddr/has_admin_metadata.rb', line 42

def locked?
  !!is_locked || Ddr.repository_locked
end

#nonpublishable?Boolean

Usually won’t be called directly. See ‘publishable?` on Resource and its derivatives

Returns:

  • (Boolean)


59
60
61
# File 'app/models/concerns/ddr/has_admin_metadata.rb', line 59

def nonpublishable?
  workflow_state == Ddr::Workflow::NONPUBLISHABLE
end

#policy_rolesObject



67
68
69
# File 'app/models/concerns/ddr/has_admin_metadata.rb', line 67

def policy_roles
  roles.select(&:in_policy_scope?)
end

#published?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'app/models/concerns/ddr/has_admin_metadata.rb', line 46

def published?
  workflow_state == Ddr::Workflow::PUBLISHED
end

#research_helpObject



50
51
52
# File 'app/models/concerns/ddr/has_admin_metadata.rb', line 50

def research_help
  Ddr::Contact.call(research_help_contact) if research_help_contact
end

#resource_rolesObject



63
64
65
# File 'app/models/concerns/ddr/has_admin_metadata.rb', line 63

def resource_roles
  roles.select(&:in_resource_scope?)
end

#unpublished?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'app/models/concerns/ddr/has_admin_metadata.rb', line 54

def unpublished?
  workflow_state == Ddr::Workflow::UNPUBLISHED
end