Module: Spotlight::AccessControlsEnforcementSearchBuilder
- Extended by:
 - ActiveSupport::Concern
 
- Included in:
 - SearchBuilder
 
- Defined in:
 - app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
 
Overview
Enforce exhibit visibility for index queries
Instance Method Summary collapse
- #apply_exhibit_resources_filter(solr_params) ⇒ Object
 - 
  
    
      #apply_permissive_visibility_filter(solr_params)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Adds a filter that excludes resources that have been marked as not-visible.
 
Instance Method Details
#apply_exhibit_resources_filter(solr_params) ⇒ Object
      20 21 22 23 24 25 26 27 28  | 
    
      # File 'app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb', line 20 def apply_exhibit_resources_filter(solr_params) return unless current_exhibit current_exhibit.solr_data.each do |facet_field, values| Array(values).each do |value| solr_params.append_filter_query send(:facet_value_to_fq_string, facet_field, value) end end end  | 
  
#apply_permissive_visibility_filter(solr_params) ⇒ Object
Adds a filter that excludes resources that have been marked as not-visible
      13 14 15 16 17 18  | 
    
      # File 'app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb', line 13 def apply_permissive_visibility_filter(solr_params) return unless current_exhibit return if !blacklight_params[:public] && scope&.context&.key?(:current_ability) && scope.context[:current_ability].can?(:curate, current_exhibit) solr_params.append_filter_query "-#{blacklight_config.document_model.visibility_field(current_exhibit)}:false" end  |