Class: ParanoidRightsDatastream
- Inherits:
-
Hydra::Datastream::RightsMetadata
- Object
- Hydra::Datastream::RightsMetadata
- ParanoidRightsDatastream
- 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 |