blacklight-access_controls 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 66b7d11bbb0aacac0df560454fcaa9197d497f0d
4
- data.tar.gz: 6972e1277bd9fe2de05767128e2e7a5e5aed16ab
3
+ metadata.gz: c08621f2787c992b840763f78bfbbd0da777c238
4
+ data.tar.gz: 9a0333f2b7a1f34835afeb65e24e08465b595845
5
5
  SHA512:
6
- metadata.gz: bafe87cf20a214cd8391860e189cf7ded1c169a1b95a096e5bfd5d9085d9aa476d8871d808ba36fd2e8bfee718f531034b19cf134769efbd57642071be2f3868
7
- data.tar.gz: cee89b0b791178f86ade6bfd44b863cb2ae704549499df94100ffbe5f1586992309a471f878376d168b4a49ce10c9b987797199c342b190a63ea212561898bd0
6
+ metadata.gz: 894505d49a44f7dfa2ae0e993314f086da84add4dd7aa1bcb578fedd2333ee01c9a55f783b1a682cb840f1cb450a19e6ffffc03bfab4052f3c195471961a5d55
7
+ data.tar.gz: 5bbe9d38b52bf2d19e5da972a8a895bc985a2761ee1b263205198239d03c2294413e10b64d92b5978a14f3942b6f3ef553955911661ec36555d6611fb0b859fa
data/.rubocop.yml CHANGED
@@ -8,8 +8,28 @@ AllCops:
8
8
  Exclude:
9
9
  - '.internal_test_app/**/*'
10
10
 
11
+ Bundler/DuplicatedGem:
12
+ Enabled: false
13
+
14
+ Style/FileName:
15
+ Exclude:
16
+ - 'Gemfile'
17
+ - 'blacklight-access_controls.gemspec'
18
+ - 'lib/blacklight-access_controls.rb'
19
+
20
+ Style/MixinGrouping:
21
+ Enabled: false # pending fix of https://github.com/bbatsov/rubocop/issues/4172
22
+
11
23
  Rails:
12
24
  Enabled: true
13
25
 
26
+ Metrics/BlockLength:
27
+ Exclude:
28
+ - 'spec/**/*'
29
+
14
30
  Metrics/LineLength:
15
31
  Max: 185
32
+
33
+ RSpec/MessageSpies:
34
+ Enabled: false
35
+
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
3
  # Specify gem dependencies in blacklight-access_controls.gemspec
4
4
  gemspec
@@ -29,9 +29,9 @@ else
29
29
 
30
30
  case ENV['RAILS_VERSION']
31
31
  when /^4.2/
32
+ gem 'coffee-rails', '~> 4.1.0'
32
33
  gem 'responders', '~> 2.0'
33
34
  gem 'sass-rails', '>= 5.0'
34
- gem 'coffee-rails', '~> 4.1.0'
35
35
  when /^4.[01]/
36
36
  gem 'sass-rails', '< 5.0'
37
37
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.1
1
+ 0.6.2
@@ -1,32 +1,32 @@
1
- version = File.read(File.expand_path("../VERSION", __FILE__)).strip
1
+ version = File.read(File.expand_path('../VERSION', __FILE__)).strip
2
2
 
3
3
  Gem::Specification.new do |gem|
4
- gem.name = "blacklight-access_controls"
4
+ gem.name = 'blacklight-access_controls'
5
5
 
6
- gem.description = %q{Access controls for blacklight-based applications}
7
- gem.summary = %q{Access controls for blacklight-based applications}
8
- gem.homepage = "https://github.com/projectblacklight/blacklight-access_controls"
9
- gem.email = ["blacklight-development@googlegroups.com"]
10
- gem.authors = ["Chris Beer", "Justin Coyne", "Matt Zumwalt", "Valerie Maher"]
6
+ gem.description = 'Access controls for blacklight-based applications'
7
+ gem.summary = 'Access controls for blacklight-based applications'
8
+ gem.homepage = 'https://github.com/projectblacklight/blacklight-access_controls'
9
+ gem.email = ['blacklight-development@googlegroups.com']
10
+ gem.authors = ['Chris Beer', 'Justin Coyne', 'Matt Zumwalt', 'Valerie Maher']
11
11
 
12
- gem.files = `git ls-files`.split($\)
12
+ gem.files = `git ls-files`.split($OUTPUT_RECORD_SEPARATOR)
13
13
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
- gem.require_paths = ["lib"]
14
+ gem.require_paths = ['lib']
15
15
  gem.version = version
16
- gem.license = "APACHE2"
16
+ gem.license = 'APACHE2'
17
17
 
18
18
  gem.required_ruby_version = '>= 1.9.3'
19
19
 
20
20
  gem.add_dependency 'cancancan', '~> 1.8'
21
- gem.add_dependency "blacklight", '~> 6.0'
22
- gem.add_dependency "deprecation", '~> 1.0'
21
+ gem.add_dependency 'blacklight', '~> 6.0'
22
+ gem.add_dependency 'deprecation', '~> 1.0'
23
23
 
24
- gem.add_development_dependency "rake", '~> 11.3'
24
+ gem.add_development_dependency 'rake', '~> 11.3'
25
25
  gem.add_development_dependency 'rspec', '~> 3.1'
26
- gem.add_development_dependency "engine_cart", "~> 1.0"
27
- gem.add_development_dependency "solr_wrapper"
28
- gem.add_development_dependency "factory_girl_rails", "~> 4.0"
29
- gem.add_development_dependency "database_cleaner"
26
+ gem.add_development_dependency 'engine_cart', '~> 1.0'
27
+ gem.add_development_dependency 'solr_wrapper'
28
+ gem.add_development_dependency 'factory_girl_rails', '~> 4.0'
29
+ gem.add_development_dependency 'database_cleaner'
30
30
  gem.add_development_dependency 'rubocop'
31
31
  gem.add_development_dependency 'rubocop-rspec'
32
32
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'rails'
3
4
  require 'cancan'
4
5
  require 'blacklight'
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Blacklight
3
4
  module AccessControls
4
5
  extend ActiveSupport::Autoload
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'cancan'
3
4
 
4
5
  module Blacklight
@@ -14,7 +15,7 @@ module Blacklight
14
15
  # permission methods to ability_logic, like so:
15
16
  # self.ability_logic += [:setup_my_permissions]
16
17
  class_attribute :ability_logic
17
- self.ability_logic = [:discover_permissions, :read_permissions, :download_permissions]
18
+ self.ability_logic = %i(discover_permissions read_permissions download_permissions)
18
19
  end
19
20
 
20
21
  def initialize(user, options = {})
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Blacklight
3
4
  module AccessControls
4
5
  # This is behavior for the catalog controller.
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Blacklight
3
4
  module AccessControls
4
5
  class Config
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Blacklight
3
4
  module AccessControls
4
5
  # Attributes and methods used to restrict access via Solr.
@@ -21,7 +22,7 @@ module Blacklight
21
22
  class_attribute :solr_access_filters_logic
22
23
  alias_method :add_access_controls_to_solr_params, :apply_gated_discovery
23
24
 
24
- self.solr_access_filters_logic = [:apply_group_permissions, :apply_user_permissions]
25
+ self.solr_access_filters_logic = %i(apply_group_permissions apply_user_permissions)
25
26
 
26
27
  # Apply appropriate access controls to all solr queries
27
28
  self.default_processor_chain += [:add_access_controls_to_solr_params] if respond_to?(:default_processor_chain)
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  class Blacklight::AccessControls::PermissionsCache
3
4
  def initialize
4
5
  clear
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Blacklight::AccessControls
3
4
  module PermissionsQuery
4
5
  extend ActiveSupport::Concern
@@ -24,12 +25,12 @@ module Blacklight::AccessControls
24
25
  # @param [String] id of the documetn to retrieve
25
26
  # @param [Hash] extra_controller_params (optional)
26
27
  def get_permissions_solr_response_for_doc_id(id = nil, extra_controller_params = {})
27
- raise Blacklight::Exceptions::InvalidSolrID, 'The application is trying to retrieve permissions without specifying an asset id' if id.nil?
28
+ raise Blacklight::Exceptions::RecordNotFound, 'The application is trying to retrieve permissions without specifying an asset id' if id.nil?
28
29
  solr_opts = permissions_solr_doc_params(id).merge(extra_controller_params)
29
30
  response = Blacklight.default_index.connection.get('select', params: solr_opts)
30
31
  solr_response = Blacklight::Solr::Response.new(response, solr_opts, document_model: permissions_document_class)
31
32
 
32
- raise Blacklight::Exceptions::InvalidSolrID, "The solr permissions search handler didn't return anything for id \"#{id}\"" if solr_response.docs.empty?
33
+ raise Blacklight::Exceptions::RecordNotFound, "The solr permissions search handler didn't return anything for id \"#{id}\"" if solr_response.docs.empty?
33
34
  solr_response.docs.first
34
35
  end
35
36
 
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Injects behaviors into User model so that it will work with
3
4
  # Blacklight Access Controls. By default, this module assumes
4
5
  # you are using the User model created by Blacklight, which uses
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  class Ability
3
4
  include Blacklight::AccessControls::Ability
4
5
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Blacklight
3
4
  class AccessControlsGenerator < Rails::Generators::Base
4
5
  desc "This generator makes the following changes to your application:
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  Blacklight::AccessControls.configure do |config|
3
4
  # This specifies the solr field names of permissions-related fields.
4
5
  # The default fields used are shown below, if you index your permissions to other fields update the configuration below.
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  FactoryGirl.define do
3
4
  factory :user do
4
5
  sequence(:email) { |n| "user_#{n}@example.com" }
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  ENV['RAILS_ENV'] ||= 'test'
3
4
 
4
5
  require 'engine_cart'
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module SolrSupport
3
4
  def create_solr_doc(hash)
4
5
  doc = SolrDocument.new(hash)
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'rails/generators'
3
4
 
4
5
  class TestAppGenerator < Rails::Generators::Base
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'cancan/matchers'
3
4
 
4
5
  describe Ability do
@@ -21,35 +22,37 @@ describe Ability do
21
22
 
22
23
  context 'Then a not-signed-in user' do
23
24
  let(:user) { nil }
25
+
24
26
  subject { ability }
25
27
 
26
- it { should be_able_to(:discover, asset) }
27
- it { should_not be_able_to(:read, asset) }
28
- it { should_not be_able_to(:download, asset) }
28
+ it { is_expected.to be_able_to(:discover, asset) }
29
+ it { is_expected.not_to be_able_to(:read, asset) }
30
+ it { is_expected.not_to be_able_to(:download, asset) }
29
31
  end
30
32
 
31
33
  context 'Then a registered user' do
32
34
  let(:user) { create(:user) }
35
+
33
36
  subject { ability }
34
37
 
35
- it { should be_able_to(:discover, asset) }
36
- it { should_not be_able_to(:read, asset) }
37
- it { should_not be_able_to(:download, asset) }
38
+ it { is_expected.to be_able_to(:discover, asset) }
39
+ it { is_expected.not_to be_able_to(:read, asset) }
40
+ it { is_expected.not_to be_able_to(:download, asset) }
38
41
  end
39
42
 
40
43
  context 'With an ID instead of a SolrDocument' do
41
- let(:user) { create(:user) }
42
44
  subject { ability }
43
45
 
46
+ let(:user) { create(:user) }
44
47
  let(:asset) {
45
48
  create_solr_doc(id: 'public_discovery',
46
49
  discover_access_group_ssim: ['public'])
47
50
  }
48
51
 
49
52
  # It should still work, even if we just pass in an ID
50
- it { should be_able_to(:discover, asset.id) }
51
- it { should_not be_able_to(:read, asset.id) }
52
- it { should_not be_able_to(:download, asset.id) }
53
+ it { is_expected.to be_able_to(:discover, asset.id) }
54
+ it { is_expected.not_to be_able_to(:read, asset.id) }
55
+ it { is_expected.not_to be_able_to(:download, asset.id) }
53
56
  end
54
57
  end
55
58
 
@@ -59,35 +62,37 @@ describe Ability do
59
62
 
60
63
  context 'Then a not-signed-in user' do
61
64
  let(:user) { nil }
65
+
62
66
  subject { ability }
63
67
 
64
- it { should be_able_to(:discover, asset) }
65
- it { should be_able_to(:read, asset) }
66
- it { should_not be_able_to(:download, asset) }
68
+ it { is_expected.to be_able_to(:discover, asset) }
69
+ it { is_expected.to be_able_to(:read, asset) }
70
+ it { is_expected.not_to be_able_to(:download, asset) }
67
71
  end
68
72
 
69
73
  context 'Then a registered user' do
70
74
  let(:user) { create(:user) }
75
+
71
76
  subject { ability }
72
77
 
73
- it { should be_able_to(:discover, asset) }
74
- it { should be_able_to(:read, asset) }
75
- it { should_not be_able_to(:download, asset) }
78
+ it { is_expected.to be_able_to(:discover, asset) }
79
+ it { is_expected.to be_able_to(:read, asset) }
80
+ it { is_expected.not_to be_able_to(:download, asset) }
76
81
  end
77
82
 
78
83
  context 'With an ID instead of a SolrDocument' do
79
- let(:user) { create(:user) }
80
84
  subject { ability }
81
85
 
86
+ let(:user) { create(:user) }
82
87
  let(:asset) {
83
88
  create_solr_doc(id: 'public_read',
84
89
  read_access_group_ssim: ['public'])
85
90
  }
86
91
 
87
92
  # It should still work, even if we just pass in an ID
88
- it { should be_able_to(:discover, asset.id) }
89
- it { should be_able_to(:read, asset.id) }
90
- it { should_not be_able_to(:download, asset.id) }
93
+ it { is_expected.to be_able_to(:discover, asset.id) }
94
+ it { is_expected.to be_able_to(:read, asset.id) }
95
+ it { is_expected.not_to be_able_to(:download, asset.id) }
91
96
  end
92
97
  end
93
98
 
@@ -98,35 +103,37 @@ describe Ability do
98
103
 
99
104
  context 'Then a not-signed-in user' do
100
105
  let(:user) { nil }
106
+
101
107
  subject { ability }
102
108
 
103
- it { should be_able_to(:discover, asset) }
104
- it { should be_able_to(:read, asset) }
105
- it { should be_able_to(:download, asset) }
109
+ it { is_expected.to be_able_to(:discover, asset) }
110
+ it { is_expected.to be_able_to(:read, asset) }
111
+ it { is_expected.to be_able_to(:download, asset) }
106
112
  end
107
113
 
108
114
  context 'Then a registered user' do
109
- let(:user) { create(:user) }
110
115
  subject { ability }
111
116
 
112
- it { should be_able_to(:discover, asset) }
113
- it { should be_able_to(:read, asset) }
114
- it { should be_able_to(:download, asset) }
117
+ let(:user) { create(:user) }
118
+
119
+ it { is_expected.to be_able_to(:discover, asset) }
120
+ it { is_expected.to be_able_to(:read, asset) }
121
+ it { is_expected.to be_able_to(:download, asset) }
115
122
  end
116
123
 
117
124
  context 'With an ID instead of a record' do
118
- let(:user) { create(:user) }
119
125
  subject { ability }
120
126
 
127
+ let(:user) { create(:user) }
121
128
  let(:asset) {
122
129
  create_solr_doc(id: id,
123
130
  download_access_group_ssim: ['public'])
124
131
  }
125
132
 
126
133
  # It should still work, even if we just pass in an ID
127
- it { should be_able_to(:discover, asset.id) }
128
- it { should be_able_to(:read, asset.id) }
129
- it { should be_able_to(:download, asset.id) }
134
+ it { is_expected.to be_able_to(:discover, asset.id) }
135
+ it { is_expected.to be_able_to(:read, asset.id) }
136
+ it { is_expected.to be_able_to(:download, asset.id) }
130
137
  end
131
138
  end
132
139
 
@@ -136,29 +143,32 @@ describe Ability do
136
143
 
137
144
  context 'Then a not-signed-in user' do
138
145
  let(:user) { nil }
146
+
139
147
  subject { ability }
140
148
 
141
- it { should_not be_able_to(:discover, asset) }
142
- it { should_not be_able_to(:read, asset) }
143
- it { should_not be_able_to(:download, asset) }
149
+ it { is_expected.not_to be_able_to(:discover, asset) }
150
+ it { is_expected.not_to be_able_to(:read, asset) }
151
+ it { is_expected.not_to be_able_to(:download, asset) }
144
152
  end
145
153
 
146
154
  context 'Then a different registered user' do
147
155
  let(:user) { create(:user) }
156
+
148
157
  subject { ability }
149
158
 
150
- it { should_not be_able_to(:discover, asset) }
151
- it { should_not be_able_to(:read, asset) }
152
- it { should_not be_able_to(:download, asset) }
159
+ it { is_expected.not_to be_able_to(:discover, asset) }
160
+ it { is_expected.not_to be_able_to(:read, asset) }
161
+ it { is_expected.not_to be_able_to(:download, asset) }
153
162
  end
154
163
 
155
164
  context 'Then that user' do
156
165
  let(:user) { user_with_access }
166
+
157
167
  subject { ability }
158
168
 
159
- it { should be_able_to(:discover, asset) }
160
- it { should_not be_able_to(:read, asset) }
161
- it { should_not be_able_to(:download, asset) }
169
+ it { is_expected.to be_able_to(:discover, asset) }
170
+ it { is_expected.not_to be_able_to(:read, asset) }
171
+ it { is_expected.not_to be_able_to(:download, asset) }
162
172
  end
163
173
  end
164
174
 
@@ -168,29 +178,32 @@ describe Ability do
168
178
 
169
179
  context 'Then a not-signed-in user' do
170
180
  let(:user) { nil }
181
+
171
182
  subject { ability }
172
183
 
173
- it { should_not be_able_to(:discover, asset) }
174
- it { should_not be_able_to(:read, asset) }
175
- it { should_not be_able_to(:download, asset) }
184
+ it { is_expected.not_to be_able_to(:discover, asset) }
185
+ it { is_expected.not_to be_able_to(:read, asset) }
186
+ it { is_expected.not_to be_able_to(:download, asset) }
176
187
  end
177
188
 
178
189
  context 'Then a different registered user' do
179
190
  let(:user) { create(:user) }
191
+
180
192
  subject { ability }
181
193
 
182
- it { should_not be_able_to(:discover, asset) }
183
- it { should_not be_able_to(:read, asset) }
184
- it { should_not be_able_to(:download, asset) }
194
+ it { is_expected.not_to be_able_to(:discover, asset) }
195
+ it { is_expected.not_to be_able_to(:read, asset) }
196
+ it { is_expected.not_to be_able_to(:download, asset) }
185
197
  end
186
198
 
187
199
  context 'Then that user' do
188
200
  let(:user) { user_with_access }
201
+
189
202
  subject { ability }
190
203
 
191
- it { should be_able_to(:discover, asset) }
192
- it { should be_able_to(:read, asset) }
193
- it { should_not be_able_to(:download, asset) }
204
+ it { is_expected.to be_able_to(:discover, asset) }
205
+ it { is_expected.to be_able_to(:read, asset) }
206
+ it { is_expected.not_to be_able_to(:download, asset) }
194
207
  end
195
208
  end
196
209
 
@@ -200,39 +213,44 @@ describe Ability do
200
213
 
201
214
  context 'Then a not-signed-in user' do
202
215
  let(:user) { nil }
216
+
203
217
  subject { ability }
204
218
 
205
- it { should_not be_able_to(:discover, asset) }
206
- it { should_not be_able_to(:read, asset) }
207
- it { should_not be_able_to(:download, asset) }
219
+ it { is_expected.not_to be_able_to(:discover, asset) }
220
+ it { is_expected.not_to be_able_to(:read, asset) }
221
+ it { is_expected.not_to be_able_to(:download, asset) }
208
222
  end
209
223
 
210
224
  context 'Then a different registered user' do
211
225
  let(:user) { create(:user) }
226
+
212
227
  subject { ability }
213
228
 
214
- it { should_not be_able_to(:discover, asset) }
215
- it { should_not be_able_to(:read, asset) }
216
- it { should_not be_able_to(:download, asset) }
229
+ it { is_expected.not_to be_able_to(:discover, asset) }
230
+ it { is_expected.not_to be_able_to(:read, asset) }
231
+ it { is_expected.not_to be_able_to(:download, asset) }
217
232
  end
218
233
 
219
234
  context 'Then that user' do
220
235
  let(:user) { user_with_access }
236
+
221
237
  subject { ability }
222
238
 
223
- it { should be_able_to(:discover, asset) }
224
- it { should be_able_to(:read, asset) }
225
- it { should be_able_to(:download, asset) }
239
+ it { is_expected.to be_able_to(:discover, asset) }
240
+ it { is_expected.to be_able_to(:read, asset) }
241
+ it { is_expected.to be_able_to(:download, asset) }
226
242
  end
227
243
  end
228
244
 
229
245
  describe '.user_class' do
230
246
  subject { Blacklight::AccessControls::Ability.user_class }
247
+
231
248
  it { is_expected.to eq User }
232
249
  end
233
250
 
234
251
  describe '#guest_user' do
235
252
  let(:user) { nil }
253
+
236
254
  subject { ability.guest_user }
237
255
 
238
256
  it 'is a new user' do
@@ -246,22 +264,26 @@ describe Ability do
246
264
 
247
265
  context 'an unregistered user' do
248
266
  let(:user) { build(:user) }
267
+
249
268
  it { is_expected.to contain_exactly('public') }
250
269
  end
251
270
 
252
271
  context 'a registered user' do
253
272
  let(:user) { create(:user) }
273
+
254
274
  it { is_expected.to contain_exactly('registered', 'public') }
255
275
  end
256
276
 
257
277
  context 'a user with groups' do
258
278
  let(:user) { double(groups: %w(group1 group2), new_record?: false) }
279
+
259
280
  it { is_expected.to include('group1', 'group2') }
260
281
  end
261
282
  end
262
283
 
263
284
  describe 'with a custom method' do
264
285
  let(:user) { create(:user) }
286
+
265
287
  subject { MyAbility.new(user) }
266
288
 
267
289
  before do
@@ -280,6 +302,6 @@ describe Ability do
280
302
  end
281
303
 
282
304
  # Make sure it called the custom method
283
- it { should be_able_to(:accept, SolrDocument) }
305
+ it { is_expected.to be_able_to(:accept, SolrDocument) }
284
306
  end
285
307
  end
@@ -1,9 +1,11 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  describe Blacklight::AccessControls::Catalog do
3
4
  let(:controller) { CatalogController.new }
4
5
 
5
6
  describe '#enforce_show_permissions' do
6
7
  subject { controller.send(:enforce_show_permissions) }
8
+
7
9
  let(:params) { { id: doc.id } }
8
10
 
9
11
  before do
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  describe Blacklight::AccessControls::Config do
3
4
  let(:config) { described_class.new }
4
5
 
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  class MyController # < ApplicationController
3
4
  include Blacklight::AccessControls::Enforcement
4
5
  end
@@ -11,6 +12,7 @@ describe Blacklight::AccessControls::Enforcement do
11
12
  end
12
13
  let(:user) { User.new }
13
14
  let(:ability) { Ability.new(user) }
15
+
14
16
  subject { controller }
15
17
 
16
18
  describe '#discovery_permissions' do
@@ -33,10 +35,10 @@ describe Blacklight::AccessControls::Enforcement do
33
35
  solr_parameters[:fq].first
34
36
  end
35
37
 
36
- # rubocop:disable RSpec/MessageExpectation
37
38
  describe 'logger' do
38
39
  # Expectation will be triggered by Ability class (that calls Rails.logger.debug earlier). So we double Ability to avoid false positive.
39
40
  let(:ability) { instance_double(Ability, user_groups: [], current_user: user) }
41
+
40
42
  it 'is called with debug' do
41
43
  expect(Rails.logger).to receive(:debug).with(/^Solr parameters/)
42
44
  controller.send(:apply_gated_discovery, {})
@@ -114,6 +116,7 @@ describe Blacklight::AccessControls::Enforcement do
114
116
 
115
117
  describe 'when the user is a guest user (user key empty string)' do
116
118
  let(:user) { User.new(email: '') }
119
+
117
120
  it 'does not create filters' do
118
121
  expect(subject.send(:apply_user_permissions, %w(discover read))).to eq []
119
122
  end
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.6.1
4
+ version: 0.6.2
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: 2016-10-06 00:00:00.000000000 Z
14
+ date: 2017-03-28 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: cancancan
@@ -296,7 +296,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
296
296
  version: '0'
297
297
  requirements: []
298
298
  rubyforge_project:
299
- rubygems_version: 2.5.1
299
+ rubygems_version: 2.6.10
300
300
  signing_key:
301
301
  specification_version: 4
302
302
  summary: Access controls for blacklight-based applications