blacklight-spotlight 0.9.2 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/concerns/spotlight/exhibit_documents.rb +10 -7
- data/app/models/spotlight/blacklight_configuration.rb +0 -2
- data/app/views/spotlight/catalog/_status_header.html.erb +0 -0
- data/lib/generators/spotlight/install_generator.rb +10 -0
- data/lib/spotlight/catalog/access_controls_enforcement.rb +6 -0
- data/lib/spotlight/version.rb +1 -1
- data/spec/models/spotlight/exhibit_spec.rb +5 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4477ac2d54b4a5009867cbcff8bdf710b93bee8d
|
4
|
+
data.tar.gz: 3c274d2b475395ca0f55da0e5c000fe0338b772f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53ac3d47317e9e867604f218abc36bf0995979eefeddfe54090595322e47edae1b3384cb14055293c92f9f0b7d2c146ab9b5478bec2572a69e24c97ec6679f09
|
7
|
+
data.tar.gz: 551bc13319ac8f7992d78dc82b49e16832500cd7dd9d5a7c2d6c184ad4a25308b5609da8583ff249e29ea5e42aabc75477e16ebb04ae1eccc4a7ad631b008f59
|
@@ -10,22 +10,25 @@ module Spotlight
|
|
10
10
|
return to_enum(:solr_documents) unless block_given?
|
11
11
|
|
12
12
|
start = 0
|
13
|
-
|
13
|
+
search_params = exhibit_search_builder.merge(q: '*:*', fl: '*')
|
14
|
+
|
15
|
+
response = repository.search(search_params.start(start).to_h)
|
14
16
|
|
15
17
|
while response.documents.present?
|
16
18
|
response.documents.each { |x| yield x }
|
17
19
|
start += response.documents.length
|
18
|
-
response = repository.search(
|
20
|
+
response = repository.search(search_params.start(start).to_h)
|
19
21
|
end
|
20
22
|
end
|
21
23
|
|
22
24
|
private
|
23
25
|
|
24
|
-
def
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
def exhibit_search_builder
|
27
|
+
blacklight_config.search_builder_class.new(true, exhibit_search_builder_context).except(:apply_permissive_visibility_filter)
|
28
|
+
end
|
29
|
+
|
30
|
+
def exhibit_search_builder_context
|
31
|
+
OpenStruct.new(blacklight_config: blacklight_config, current_exhibit: self)
|
29
32
|
end
|
30
33
|
|
31
34
|
def repository
|
@@ -67,8 +67,6 @@ module Spotlight
|
|
67
67
|
# Create a new config based on the defaults
|
68
68
|
config = default_blacklight_config.inheritable_copy
|
69
69
|
|
70
|
-
config.search_builder_class.send(:include, Spotlight::Catalog::AccessControlsEnforcement::SearchBuilder)
|
71
|
-
|
72
70
|
config.show.merge! show unless show.blank?
|
73
71
|
config.index.merge! index unless index.blank?
|
74
72
|
|
File without changes
|
@@ -75,6 +75,16 @@ module Spotlight
|
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
|
+
def add_search_builder_mixin
|
79
|
+
if File.exist? 'app/models/search_builder.rb'
|
80
|
+
inject_into_file 'app/models/search_builder.rb', after: "include Blacklight::Solr::SearchBuilderBehavior\n" do
|
81
|
+
"\n include Spotlight::Catalog::AccessControlsEnforcement::SearchBuilder\n"
|
82
|
+
end
|
83
|
+
else
|
84
|
+
say 'Unable to find SearchBuilder class; add `include Spotlight::Catalog::AccessControlsEnforcement::SearchBuilder` to the class manually.'
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
78
88
|
def add_example_catalog_controller
|
79
89
|
copy_file 'catalog_controller.rb', 'app/controllers/catalog_controller.rb'
|
80
90
|
end
|
@@ -12,6 +12,12 @@ module Spotlight
|
|
12
12
|
##
|
13
13
|
# SearchBuilder mixin
|
14
14
|
module SearchBuilder
|
15
|
+
extend ActiveSupport::Concern
|
16
|
+
|
17
|
+
included do
|
18
|
+
self.default_processor_chain += [:apply_permissive_visibility_filter, :apply_exhibit_resources_filter]
|
19
|
+
end
|
20
|
+
|
15
21
|
def apply_permissive_visibility_filter(solr_params)
|
16
22
|
return unless current_exhibit
|
17
23
|
return if scope.respond_to?(:can?) && scope.can?(:curate, current_exhibit) && !blacklight_params[:public]
|
data/lib/spotlight/version.rb
CHANGED
@@ -174,9 +174,11 @@ describe Spotlight::Exhibit, type: :model do
|
|
174
174
|
|
175
175
|
describe '#solr_documents' do
|
176
176
|
let(:blacklight_config) { Blacklight::Configuration.new }
|
177
|
+
let(:slug) { 'some_slug' }
|
177
178
|
|
178
179
|
before do
|
179
180
|
allow(subject).to receive(:blacklight_config).and_return(blacklight_config)
|
181
|
+
allow(subject).to receive(:slug).and_return(slug)
|
180
182
|
end
|
181
183
|
|
182
184
|
it 'enumerates the documents in the exhibit' do
|
@@ -184,7 +186,7 @@ describe Spotlight::Exhibit, type: :model do
|
|
184
186
|
end
|
185
187
|
|
186
188
|
it 'pages through the index' do
|
187
|
-
allow_any_instance_of(Blacklight::Solr::Repository).to receive(:search).
|
189
|
+
allow_any_instance_of(Blacklight::Solr::Repository).to receive(:search).and_return(double(documents: [1, 2, 3]))
|
188
190
|
allow_any_instance_of(Blacklight::Solr::Repository).to receive(:search).with(hash_including(start: 3)).and_return(double(documents: [4, 5, 6]))
|
189
191
|
allow_any_instance_of(Blacklight::Solr::Repository).to receive(:search).with(hash_including(start: 6)).and_return(double(documents: []))
|
190
192
|
|
@@ -197,7 +199,8 @@ describe Spotlight::Exhibit, type: :model do
|
|
197
199
|
end
|
198
200
|
|
199
201
|
it 'filters the solr results using the exhibit filter' do
|
200
|
-
|
202
|
+
expected_query_params = { fq: ["spotlight_exhibit_slug_#{subject.slug}_bsi:true"] }
|
203
|
+
allow_any_instance_of(Blacklight::Solr::Repository).to receive(:search).with(hash_including(expected_query_params)).and_return(double(documents: []))
|
201
204
|
expect(subject.solr_documents.to_a).to be_blank
|
202
205
|
end
|
203
206
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blacklight-spotlight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Beer
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2015-
|
14
|
+
date: 2015-12-02 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rails
|
@@ -935,6 +935,7 @@ files:
|
|
935
935
|
- app/views/spotlight/catalog/_document_visibility_control.html.erb
|
936
936
|
- app/views/spotlight/catalog/_edit_default.html.erb
|
937
937
|
- app/views/spotlight/catalog/_index_compact_default.html.erb
|
938
|
+
- app/views/spotlight/catalog/_status_header.html.erb
|
938
939
|
- app/views/spotlight/catalog/admin.html.erb
|
939
940
|
- app/views/spotlight/catalog/edit.html.erb
|
940
941
|
- app/views/spotlight/catalog/new.html.erb
|