module Hydra::AccessControlsEnforcement

Public Instance Methods

current_ability() click to toggle source
# File lib/hydra/access_controls_enforcement.rb, line 5
def current_ability
  @current_ability || (scope.current_ability if scope&.respond_to?(:current_ability))
end
with_ability(ability) click to toggle source
# File lib/hydra/access_controls_enforcement.rb, line 9
def with_ability(ability)
  params_will_change!
  @current_ability = ability
  self
end
with_discovery_permissions(permissions) click to toggle source
# File lib/hydra/access_controls_enforcement.rb, line 15
def with_discovery_permissions(permissions)
  params_will_change!
  @discovery_permissions = Array(permissions)
  self
end

Protected Instance Methods

discovery_permissions() click to toggle source

Which permission levels (logical OR) will grant you the ability to discover documents in a search. Overrides blacklight-access_controls method.

# File lib/hydra/access_controls_enforcement.rb, line 35
def discovery_permissions
  @discovery_permissions ||= ["edit","discover","read"]
end
solr_field_for(permission_type, permission_category) click to toggle source

Find the name of the solr field for this type of permission. e.g. “read_access_group_ssim” or “discover_access_person_ssim”. Used by blacklight-access_controls.

# File lib/hydra/access_controls_enforcement.rb, line 42
def solr_field_for(permission_type, permission_category)
  permissions = Hydra.config.permissions[permission_type.to_sym]
  permission_category == 'group' ? permissions.group : permissions.individual
end
under_embargo?() click to toggle source
# File lib/hydra/access_controls_enforcement.rb, line 23
def under_embargo?
  load_permissions_from_solr
  embargo_key = Hydra.config.permissions.embargo.release_date
  if @permissions_solr_document[embargo_key]
    embargo_date = Date.parse(@permissions_solr_document[embargo_key].split(/T/)[0])
    return embargo_date > Date.parse(Time.now.to_s)
  end
  false
end