Module: CurationConcerns::SelectsCollections
- Extended by:
- ActiveSupport::Concern, Deprecation
- Defined in:
- app/controllers/concerns/curation_concerns/selects_collections.rb
Instance Method Summary collapse
- #access_levels ⇒ Object
- #collections_search_builder(access_level = nil) ⇒ Object
- #collections_search_builder_class ⇒ Object
-
#find_collections(access_level = nil) ⇒ Array<SolrDocument>
Return list of collections matching the passed in access_level for the current user.
-
#find_collections_with_edit_access(include_default = false, default_id = -1,, default_title = 'Select collection...') ⇒ Array<SolrDocument>
Return list of collections for which the current user has edit access.
-
#find_collections_with_read_access ⇒ Array<SolrDocument>
Return list of collections for which the current user has read access.
Instance Method Details
#access_levels ⇒ Object
12 13 14 |
# File 'app/controllers/concerns/curation_concerns/selects_collections.rb', line 12 def access_levels { read: [:read, :edit], edit: [:edit] } end |
#collections_search_builder(access_level = nil) ⇒ Object
61 62 63 64 65 |
# File 'app/controllers/concerns/curation_concerns/selects_collections.rb', line 61 def collections_search_builder(access_level = nil) collections_search_builder_class.new(self).tap do |builder| builder.discovery_perms = access_levels[access_level] if access_level end end |
#collections_search_builder_class ⇒ Object
57 58 59 |
# File 'app/controllers/concerns/curation_concerns/selects_collections.rb', line 57 def collections_search_builder_class CurationConcerns::CollectionSearchBuilder end |
#find_collections(access_level = nil) ⇒ Array<SolrDocument>
Return list of collections matching the passed in access_level for the current user.
45 46 47 48 49 50 51 52 53 54 55 |
# File 'app/controllers/concerns/curation_concerns/selects_collections.rb', line 45 def find_collections(access_level = nil) # need to know the user if there is an access level applied otherwise we are just doing public collections authenticate_user! unless access_level.blank? # run the solr query to find the collections query = collections_search_builder(access_level).with(q: '').query response = repository.search(query) # return the user's collections (or public collections if no access_level is applied) @user_collections = response.documents end |
#find_collections_with_edit_access(include_default = false, default_id = -1,, default_title = 'Select collection...') ⇒ Array<SolrDocument>
Return list of collections for which the current user has edit access. Optionally prepend with default that can be used in a select menu to instruct user to select a collection. Add this or find_collections_with_read_access as a before filter on any page that shows the form_for_select_collection
35 36 37 38 39 |
# File 'app/controllers/concerns/curation_concerns/selects_collections.rb', line 35 def find_collections_with_edit_access(include_default = false, default_id = -1, default_title = 'Select collection...') find_collections(:edit) default_option = SolrDocument.new(id: default_id, title_tesim: default_title) @user_collections.unshift(default_option) if include_default end |
#find_collections_with_read_access ⇒ Array<SolrDocument>
Return list of collections for which the current user has read access. Add this or find_collections_with_edit_access as a before filter on any page that shows the form_for_select_collection
21 22 23 |
# File 'app/controllers/concerns/curation_concerns/selects_collections.rb', line 21 def find_collections_with_read_access find_collections(:read) end |