Module: Hyrax::Ability

Extended by:
ActiveSupport::Concern
Defined in:
app/models/concerns/hyrax/ability.rb

Instance Method Summary collapse

Instance Method Details

#admin?Boolean

Override this method in your ability model if you use a different group or other logic to designate an administrator.

Returns:

  • (Boolean)


50
51
52
# File 'app/models/concerns/hyrax/ability.rb', line 50

def admin?
  user_groups.include? 'admin'
end

#can_create_any_work?Boolean

Returns true if can create at least one type of work

Returns:

  • (Boolean)


42
43
44
45
46
# File 'app/models/concerns/hyrax/ability.rb', line 42

def can_create_any_work?
  Hyrax.config.curation_concerns.any? do |curation_concern_type|
    can?(:create, curation_concern_type)
  end
end

#download_groups(id) ⇒ Object

Samvera doesn’t use download user/groups, so make it an alias to read Grant all groups with read or edit access permission to download



24
25
26
27
28
29
30
# File 'app/models/concerns/hyrax/ability.rb', line 24

def download_groups(id)
  doc = permissions_doc(id)
  return [] if doc.nil?
  groups = Array(doc[self.class.read_group_field]) + Array(doc[self.class.edit_group_field])
  Rails.logger.debug("[CANCAN] download_groups: #{groups.inspect}")
  groups
end

#download_users(id) ⇒ Object

Grant all users with read or edit access permission to download



33
34
35
36
37
38
39
# File 'app/models/concerns/hyrax/ability.rb', line 33

def download_users(id)
  doc = permissions_doc(id)
  return [] if doc.nil?
  users = Array(doc[self.class.read_user_field]) + Array(doc[self.class.edit_user_field])
  Rails.logger.debug("[CANCAN] download_users: #{users.inspect}")
  users
end