blacklight-access_controls 0.7.0.rc1 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +4 -2
- data/VERSION +1 -1
- data/blacklight-access_controls.gemspec +1 -1
- data/lib/blacklight/access_controls/catalog.rb +1 -1
- data/lib/blacklight/access_controls/permissions_query.rb +11 -2
- data/spec/test_app_templates/Gemfile.extra +3 -0
- data/spec/unit/blacklight/access_controls/search_builder_spec.rb +2 -1
- data/spec/unit/catalog_spec.rb +14 -2
- data/spec/unit/enforcement_spec.rb +2 -1
- metadata +15 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1432718300b52451d466cc04768b4c9c0e96f6cd642618fe6634d7de19a98dc0
|
4
|
+
data.tar.gz: 8ecd44bb67934ca4e5e2eab5f97211fefef0c30b35b74896f96737e08ded9977
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '018a2d0bce5a6e1f41cce61631117535fa9fdddc80ea598d2ef16a1a76633ba9c70f1f5c075e4625cd924c22a1fe7233296d6e0437a3247f505ea2085c5116d3'
|
7
|
+
data.tar.gz: 2c4a64bb4342cf51bbbc6e1d8690bdbc713b1ce9b84ab978ac8fe0db16803b50a9e5c2b837591e950c246fc75fab4078fc68e9c208aebe9fe7fbd2943c9dd598
|
data/.travis.yml
CHANGED
@@ -5,10 +5,12 @@ notifications:
|
|
5
5
|
email: false
|
6
6
|
|
7
7
|
rvm:
|
8
|
-
- 2.
|
8
|
+
- 2.5.1
|
9
9
|
|
10
10
|
env:
|
11
|
-
- "RAILS_VERSION=5.
|
11
|
+
- "BLACKLIGHT_VERSION=master RAILS_VERSION=5.2.1"
|
12
|
+
- "RAILS_VERSION=5.2.1"
|
13
|
+
- "RAILS_VERSION=5.1.6"
|
12
14
|
|
13
15
|
global_env:
|
14
16
|
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.7.0
|
1
|
+
0.7.0
|
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
|
|
17
17
|
|
18
18
|
gem.required_ruby_version = '>= 2.1.0'
|
19
19
|
|
20
|
-
gem.add_dependency 'blacklight', '
|
20
|
+
gem.add_dependency 'blacklight', '> 6.0', '< 8'
|
21
21
|
gem.add_dependency 'cancancan', '~> 1.8'
|
22
22
|
gem.add_dependency 'deprecation', '~> 1.0'
|
23
23
|
|
@@ -18,7 +18,7 @@ module Blacklight
|
|
18
18
|
|
19
19
|
# This will work for BL 6, but will need to move to SearchService in BL 7
|
20
20
|
def search_builder
|
21
|
-
Blacklight::AccessControls::SearchBuilder.new(self, current_ability)
|
21
|
+
Blacklight::AccessControls::SearchBuilder.new(self, ability: current_ability)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -13,12 +13,17 @@ module Blacklight::AccessControls
|
|
13
13
|
doc
|
14
14
|
end
|
15
15
|
|
16
|
+
# This is only valid for, and should only be used for blacklight 6
|
16
17
|
def permissions_document_class
|
17
|
-
|
18
|
+
blacklight_config.document_model
|
18
19
|
end
|
19
20
|
|
20
21
|
protected
|
21
22
|
|
23
|
+
def blacklight_config
|
24
|
+
CatalogController.blacklight_config
|
25
|
+
end
|
26
|
+
|
22
27
|
# a solr query method
|
23
28
|
# retrieve a solr document, given the doc id
|
24
29
|
# Modeled on Blacklight::SolrHelper.get_permissions_solr_response_for_doc_id
|
@@ -28,7 +33,11 @@ module Blacklight::AccessControls
|
|
28
33
|
raise Blacklight::Exceptions::RecordNotFound, 'The application is trying to retrieve permissions without specifying an asset id' if id.nil?
|
29
34
|
solr_opts = permissions_solr_doc_params(id).merge(extra_controller_params)
|
30
35
|
response = Blacklight.default_index.connection.get('select', params: solr_opts)
|
31
|
-
|
36
|
+
|
37
|
+
# Passing :blacklight_config is required for Blacklight 7, :document_model is required for Blacklight 6
|
38
|
+
solr_response = Blacklight::Solr::Response.new(response, solr_opts,
|
39
|
+
blacklight_config: blacklight_config,
|
40
|
+
document_model: permissions_document_class)
|
32
41
|
|
33
42
|
raise Blacklight::Exceptions::RecordNotFound, "The solr permissions search handler didn't return anything for id \"#{id}\"" if solr_response.docs.empty?
|
34
43
|
solr_response.docs.first
|
@@ -28,8 +28,9 @@ RSpec.describe Blacklight::AccessControls::SearchBuilder do
|
|
28
28
|
let(:ability) { instance_double(Ability, user_groups: [], current_user: user) }
|
29
29
|
|
30
30
|
it 'is called with debug' do
|
31
|
-
|
31
|
+
allow(Rails.logger).to receive(:debug)
|
32
32
|
search_builder.send(:apply_gated_discovery, {})
|
33
|
+
expect(Rails.logger).to have_received(:debug).with(/^Solr parameters/)
|
33
34
|
end
|
34
35
|
end
|
35
36
|
|
data/spec/unit/catalog_spec.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
describe Blacklight::AccessControls::Catalog do
|
3
|
+
RSpec.describe Blacklight::AccessControls::Catalog do
|
4
4
|
let(:controller) { CatalogController.new }
|
5
5
|
|
6
6
|
describe '#enforce_show_permissions' do
|
7
|
-
subject { controller.
|
7
|
+
subject { controller.enforce_show_permissions }
|
8
8
|
|
9
9
|
let(:params) { { id: doc.id } }
|
10
10
|
|
@@ -38,4 +38,16 @@ describe Blacklight::AccessControls::Catalog do
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
41
|
+
|
42
|
+
describe '#search_builder' do
|
43
|
+
subject { controller.search_builder }
|
44
|
+
|
45
|
+
before do
|
46
|
+
allow(controller).to receive(:current_ability).and_return(instance_double(Ability))
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'creates a search_builder' do
|
50
|
+
expect(subject).to be_kind_of Blacklight::AccessControls::SearchBuilder
|
51
|
+
end
|
52
|
+
end
|
41
53
|
end
|
@@ -40,8 +40,9 @@ describe Blacklight::AccessControls::Enforcement do
|
|
40
40
|
let(:ability) { instance_double(Ability, user_groups: [], current_user: user) }
|
41
41
|
|
42
42
|
it 'is called with debug' do
|
43
|
-
|
43
|
+
allow(Rails.logger).to receive(:debug)
|
44
44
|
controller.send(:apply_gated_discovery, {})
|
45
|
+
expect(Rails.logger).to have_received(:debug).with(/^Solr parameters/)
|
45
46
|
end
|
46
47
|
end
|
47
48
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blacklight-access_controls
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.0
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Beer
|
@@ -11,22 +11,28 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2018-
|
14
|
+
date: 2018-10-15 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: blacklight
|
18
18
|
requirement: !ruby/object:Gem::Requirement
|
19
19
|
requirements:
|
20
|
-
- - "
|
20
|
+
- - ">"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '6.0'
|
23
|
+
- - "<"
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: '8'
|
23
26
|
type: :runtime
|
24
27
|
prerelease: false
|
25
28
|
version_requirements: !ruby/object:Gem::Requirement
|
26
29
|
requirements:
|
27
|
-
- - "
|
30
|
+
- - ">"
|
28
31
|
- !ruby/object:Gem::Version
|
29
32
|
version: '6.0'
|
33
|
+
- - "<"
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '8'
|
30
36
|
- !ruby/object:Gem::Dependency
|
31
37
|
name: cancancan
|
32
38
|
requirement: !ruby/object:Gem::Requirement
|
@@ -268,6 +274,7 @@ files:
|
|
268
274
|
- spec/factories/user.rb
|
269
275
|
- spec/spec_helper.rb
|
270
276
|
- spec/support/solr_support.rb
|
277
|
+
- spec/test_app_templates/Gemfile.extra
|
271
278
|
- spec/test_app_templates/blacklight.yml
|
272
279
|
- spec/test_app_templates/lib/generators/test_app_generator.rb
|
273
280
|
- spec/unit/ability_spec.rb
|
@@ -290,12 +297,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
290
297
|
version: 2.1.0
|
291
298
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
292
299
|
requirements:
|
293
|
-
- - "
|
300
|
+
- - ">="
|
294
301
|
- !ruby/object:Gem::Version
|
295
|
-
version:
|
302
|
+
version: '0'
|
296
303
|
requirements: []
|
297
304
|
rubyforge_project:
|
298
|
-
rubygems_version: 2.7.
|
305
|
+
rubygems_version: 2.7.6
|
299
306
|
signing_key:
|
300
307
|
specification_version: 4
|
301
308
|
summary: Access controls for blacklight-based applications
|
@@ -303,6 +310,7 @@ test_files:
|
|
303
310
|
- spec/factories/user.rb
|
304
311
|
- spec/spec_helper.rb
|
305
312
|
- spec/support/solr_support.rb
|
313
|
+
- spec/test_app_templates/Gemfile.extra
|
306
314
|
- spec/test_app_templates/blacklight.yml
|
307
315
|
- spec/test_app_templates/lib/generators/test_app_generator.rb
|
308
316
|
- spec/unit/ability_spec.rb
|