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