module Blacklight::AccessControls::PermissionsQuery
Public Instance Methods
permissions_doc(pid)
click to toggle source
# File lib/blacklight/access_controls/permissions_query.rb, line 7 def permissions_doc(pid) doc = cache.get(pid) unless doc doc = get_permissions_solr_response_for_doc_id(pid) cache.put(pid, doc) end doc end
permissions_document_class()
click to toggle source
This is only valid for, and should only be used for blacklight 6
# File lib/blacklight/access_controls/permissions_query.rb, line 17 def permissions_document_class blacklight_config.document_model end
Protected Instance Methods
blacklight_config()
click to toggle source
# File lib/blacklight/access_controls/permissions_query.rb, line 23 def blacklight_config CatalogController.blacklight_config end
get_permissions_solr_response_for_doc_id(id = nil, extra_controller_params = {})
click to toggle source
a solr query method retrieve a solr document, given the doc id Modeled on Blacklight::SolrHelper.get_permissions_solr_response_for_doc_id @param [String] id of the documetn to retrieve @param [Hash] extra_controller_params (optional)
# File lib/blacklight/access_controls/permissions_query.rb, line 32 def get_permissions_solr_response_for_doc_id(id = nil, extra_controller_params = {}) raise Blacklight::Exceptions::RecordNotFound, 'The application is trying to retrieve permissions without specifying an asset id' if id.nil? solr_opts = permissions_solr_doc_params(id).merge(extra_controller_params) response = Blacklight.default_index.connection.get('select', params: solr_opts) # Passing :blacklight_config is required for Blacklight 7, :document_model is required for Blacklight 6 solr_response = Blacklight::Solr::Response.new(response, solr_opts, blacklight_config: blacklight_config, document_model: permissions_document_class) raise Blacklight::Exceptions::RecordNotFound, "The solr permissions search handler didn't return anything for id \"#{id}\"" if solr_response.docs.empty? solr_response.docs.first end
permissions_solr_doc_params(id = nil)
click to toggle source
returns a params hash with the permissions info for a single solr document If the id arg is nil, then the value is fetched from params This method is primary called by the get_permissions_solr_response_for_doc_id
method. Modeled on Blacklight::SolrHelper.solr_doc_params @param [String] id of the documetn to retrieve
# File lib/blacklight/access_controls/permissions_query.rb, line 55 def permissions_solr_doc_params(id = nil) id ||= params[:id] # just to be consistent with the other solr param methods: { qt: :permissions, id: id # this assumes the document request handler will map the 'id' param to the unique key field } end