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



26
27
28
29
30
31
32
33
34
35
36
# File 'app/models/datastreams/paranoid_rights_datastream.rb', line 26

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