Module: CurationConcerns::Permissions::Writable

Extended by:
ActiveSupport::Concern
Includes:
Hydra::AccessControls::Permissions, Hydra::AccessControls::Visibility
Included in:
CurationConcerns::Permissions
Defined in:
app/models/concerns/curation_concerns/permissions/writable.rb

Instance Method Summary collapse

Instance Method Details

#paranoid_edit_permissionsObject



25
26
27
28
29
30
31
# File 'app/models/concerns/curation_concerns/permissions/writable.rb', line 25

def paranoid_edit_permissions
  [
    { key: :edit_users, message: 'Depositor must have edit access', condition: ->(obj) { !obj.edit_users.include?(obj.depositor) } },
    { key: :edit_groups, message: 'Public cannot have edit access', condition: ->(obj) { obj.edit_groups.include?('public') } },
    { key: :edit_groups, message: 'Registered cannot have edit access', condition: ->(obj) { obj.edit_groups.include?('registered') } }
  ]
end

#paranoid_permissionsObject



14
15
16
17
18
19
20
21
22
23
# File 'app/models/concerns/curation_concerns/permissions/writable.rb', line 14

def paranoid_permissions
  valid = true
  paranoid_edit_permissions.each do |validation|
    next unless validation[:condition].call(self)
    errors[validation[:key]] ||= []
    errors[validation[:key]] << validation[:message]
    valid = false
  end
  valid
end