Sha256: 0da14d1e991f896b25f4fcac13a156b67b88f661394dffcf92d707a59b8d2825
Contents?: true
Size: 1.07 KB
Versions: 58
Compression:
Stored size: 1.07 KB
Contents
module Hyrax module Permissions module Writable extend ActiveSupport::Concern # we're overriding the permissions= method which is in Hydra::AccessControls::Permissions include Hydra::AccessControls::Permissions include Hydra::AccessControls::Visibility included do validate :paranoid_permissions class_attribute :paranoid_edit_permissions self.paranoid_edit_permissions = [ { 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 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 end end end
Version data entries
58 entries across 58 versions & 2 rubygems