Class: ParanoidRightsDatastream

Inherits:
Hydra::Datastream::RightsMetadata
  • Object
show all
Defined in:
app/models/datastreams/paranoid_rights_datastream.rb

Overview

subclass built-in Hydra RightsDatastream and build in extra model-level validation

Constant Summary collapse

VALIDATIONS =
[
  {key: :edit_users, message: 'Depositor must have edit access', condition: lambda { |obj| !obj.edit_users.include?(obj.depositor) }},
  {key: :edit_groups, message: 'Public cannot have edit access', condition: lambda { |obj| obj.edit_groups.include?('public') }},
  {key: :edit_groups, message: 'Registered cannot have edit access', condition: lambda { |obj| obj.edit_groups.include?('registered') }}
]

Instance Method Summary collapse

Instance Method Details

#validate(object) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# File 'app/models/datastreams/paranoid_rights_datastream.rb', line 11

def validate(object)
  valid = true
  VALIDATIONS.each do |validation|
    if validation[:condition].call(object)
      object.errors[validation[:key]] ||= []
      object.errors[validation[:key]] << validation[:message]
      valid = false
    end
  end
  return valid
end