Sha256: ea9c97b319eddf1e446e323b499dbce47b36d1eb606f45fc8a6c09aa72e54a5e

Contents?: true

Size: 1.07 KB

Versions: 58

Compression:

Stored size: 1.07 KB

Contents

module Spotlight
  # Enforce exhibit visibility for index queries
  module AccessControlsEnforcementSearchBuilder
    extend ActiveSupport::Concern

    included do
      self.default_processor_chain += [:apply_permissive_visibility_filter, :apply_exhibit_resources_filter]
    end

    # Adds a filter that excludes resources that have been marked as not-visible
    def apply_permissive_visibility_filter(solr_params)
      return unless current_exhibit
      return if scope.respond_to?(:can?) && scope.can?(:curate, current_exhibit) && !blacklight_params[:public]

      solr_params.append_filter_query "-#{blacklight_config.document_model.visibility_field(current_exhibit)}:false"
    end

    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

    private

    def current_exhibit
      scope.current_exhibit
    end
  end
end

Version data entries

58 entries across 58 versions & 1 rubygems

Version Path
blacklight-spotlight-2.4.1 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.4.0 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.3.3 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.3.2 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.3.1 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.3.0 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.2.1 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.2.0 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.1.0 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.0.2 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.0.1 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.0.0 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.0.0.rc6 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.0.0.rc5 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.0.0.rc4 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.0.0.rc3 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.0.0.rc2 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-2.0.0.rc1 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-1.5.1 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb
blacklight-spotlight-1.4.1 app/models/concerns/spotlight/access_controls_enforcement_search_builder.rb