hydra-access-controls 8.1.0 → 8.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d0c332d417111f77876c46bd3331349ce28da60
|
4
|
+
data.tar.gz: 1282b9c10fe0ac75ba5e2793da8a08a1e0deb462
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 36f0b7eeab09aeee018e6610fd510a392110e7c6d6251d7b78b70c9c9b33b36014675b373f36487e53139ed79f397fa0e4404aee052c2f1c9630b4120c1cd2da
|
7
|
+
data.tar.gz: c61a05b0b34fdf009ab676eda0a67f209f42c53d792952e39e454ac09be6cc4c9c2c66f665d47717a0b89a50e4155462ac6b8cb07c2bde46a577b351a374d33f
|
@@ -16,10 +16,10 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.version = version
|
17
17
|
gem.license = "APACHE2"
|
18
18
|
|
19
|
-
gem.required_ruby_version = '>=
|
19
|
+
gem.required_ruby_version = '>= 2.0.0'
|
20
20
|
|
21
21
|
gem.add_dependency 'activesupport', '~> 4.0'
|
22
|
-
gem.add_dependency "active-fedora", '~> 8.0
|
22
|
+
gem.add_dependency "active-fedora", '~> 8.0'
|
23
23
|
gem.add_dependency "om", '~> 3.0', '>= 3.0.7'
|
24
24
|
gem.add_dependency 'cancancan', '~> 1.8'
|
25
25
|
gem.add_dependency 'deprecation', '~> 0.1'
|
@@ -4,8 +4,7 @@ module Hydra::PolicyAwareAccessControlsEnforcement
|
|
4
4
|
# Extends Hydra::AccessControlsEnforcement.apply_gated_discovery to reflect policy-provided access
|
5
5
|
# appends the result of policy_clauses into the :fq
|
6
6
|
# @param solr_parameters the current solr parameters
|
7
|
-
|
8
|
-
def apply_gated_discovery(solr_parameters, user_parameters)
|
7
|
+
def apply_gated_discovery(solr_parameters)
|
9
8
|
solr_parameters[:fq] ||= []
|
10
9
|
solr_parameters[:fq] << gated_discovery_filters.join(" OR ")
|
11
10
|
logger.debug("POLICY-aware Solr parameters: #{ solr_parameters.inspect }")
|
@@ -43,13 +42,11 @@ module Hydra::PolicyAwareAccessControlsEnforcement
|
|
43
42
|
|
44
43
|
def apply_policy_user_permissions(permission_types = discovery_permissions)
|
45
44
|
# for individual user access
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
end
|
45
|
+
user = current_ability.current_user
|
46
|
+
return [] unless user && user.user_key.present?
|
47
|
+
permission_types.map do |type|
|
48
|
+
escape_filter(ActiveFedora::SolrService.solr_name("inheritable_#{type}_access_person", Hydra::Datastream::RightsMetadata.indexer ), user.user_key)
|
51
49
|
end
|
52
|
-
user_access_filters
|
53
50
|
end
|
54
51
|
|
55
52
|
# Returns the Model used for AdminPolicy objects.
|
data/spec/spec_helper.rb
CHANGED
@@ -20,11 +20,18 @@ end
|
|
20
20
|
require 'support/rails'
|
21
21
|
|
22
22
|
# Since we're not doing a Rails Engine test, we have to load these classes manually:
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
23
|
+
require 'active_support'
|
24
|
+
require 'active_support/dependencies'
|
25
|
+
relative_load_paths = ["#{Blacklight.root}/app/controllers/concerns",
|
26
|
+
"#{Blacklight.root}/app/models",
|
27
|
+
"app/models",
|
28
|
+
"app/models/concerns",
|
29
|
+
"app/indexers",
|
30
|
+
"app/services",
|
31
|
+
"app/validators",
|
32
|
+
"app/vocabularies"]
|
33
|
+
ActiveSupport::Dependencies.autoload_paths += relative_load_paths
|
34
|
+
|
28
35
|
require 'support/mods_asset'
|
29
36
|
require 'support/solr_document'
|
30
37
|
require "support/user"
|
@@ -90,7 +90,6 @@ describe Hydra::PolicyAwareAccessControlsEnforcement do
|
|
90
90
|
|
91
91
|
before do
|
92
92
|
@solr_parameters = {}
|
93
|
-
@user_parameters = {}
|
94
93
|
@user = FactoryGirl.build(:sara_student)
|
95
94
|
end
|
96
95
|
|
@@ -129,13 +128,13 @@ describe Hydra::PolicyAwareAccessControlsEnforcement do
|
|
129
128
|
# stubbing out policies_with_access because solr doesn't always return them in the same order.
|
130
129
|
policy_pids = (1..8).map {|n| "test:policy#{n}"}
|
131
130
|
subject.should_receive(:policies_with_access).and_return(policy_pids)
|
132
|
-
subject.apply_gated_discovery(@solr_parameters
|
131
|
+
subject.apply_gated_discovery(@solr_parameters)
|
133
132
|
governed_field = ActiveFedora::SolrService.solr_name('is_governed_by', :symbol)
|
134
133
|
@solr_parameters[:fq].first.should include(" OR (_query_:\"{!raw f=#{governed_field}}info:fedora/test:policy1\" OR _query_:\"{!raw f=#{governed_field}}info:fedora/test:policy2\" OR _query_:\"{!raw f=#{governed_field}}info:fedora/test:policy3\" OR _query_:\"{!raw f=#{governed_field}}info:fedora/test:policy4\" OR _query_:\"{!raw f=#{governed_field}}info:fedora/test:policy5\" OR _query_:\"{!raw f=#{governed_field}}info:fedora/test:policy6\" OR _query_:\"{!raw f=#{governed_field}}info:fedora/test:policy7\" OR _query_:\"{!raw f=#{governed_field}}info:fedora/test:policy8\")")
|
135
134
|
end
|
136
135
|
it "should not change anything if there are no clauses to add" do
|
137
136
|
subject.stub(:policy_clauses).and_return(nil)
|
138
|
-
subject.apply_gated_discovery(@solr_parameters
|
137
|
+
subject.apply_gated_discovery(@solr_parameters)
|
139
138
|
@solr_parameters[:fq].first.should_not include(" OR (#{ActiveFedora::SolrService.solr_name('is_governed_by', :symbol)}:info\\:fedora\\/test\\:policy1 OR #{ActiveFedora::SolrService.solr_name('is_governed_by', :symbol)}:info\\:fedora\\/test\\:policy2 OR #{ActiveFedora::SolrService.solr_name('is_governed_by', :symbol)}:info\\:fedora\\/test\\:policy3 OR #{ActiveFedora::SolrService.solr_name('is_governed_by', :symbol)}:info\\:fedora\\/test\\:policy4 OR #{ActiveFedora::SolrService.solr_name('is_governed_by', :symbol)}:info\\:fedora\\/test\\:policy5 OR #{ActiveFedora::SolrService.solr_name('is_governed_by', :symbol)}:info\\:fedora\\/test\\:policy6 OR #{ActiveFedora::SolrService.solr_name('is_governed_by', :symbol)}:info\\:fedora\\/test\\:policy7 OR #{ActiveFedora::SolrService.solr_name('is_governed_by', :symbol)}:info\\:fedora\\/test\\:policy8)")
|
140
139
|
end
|
141
140
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hydra-access-controls
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.
|
4
|
+
version: 8.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Beer
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2017-02-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -32,14 +32,14 @@ dependencies:
|
|
32
32
|
requirements:
|
33
33
|
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 8.0
|
35
|
+
version: '8.0'
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 8.0
|
42
|
+
version: '8.0'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: om
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -228,7 +228,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
228
228
|
requirements:
|
229
229
|
- - ">="
|
230
230
|
- !ruby/object:Gem::Version
|
231
|
-
version:
|
231
|
+
version: 2.0.0
|
232
232
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
234
|
- - ">="
|
@@ -236,7 +236,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
236
236
|
version: '0'
|
237
237
|
requirements: []
|
238
238
|
rubyforge_project:
|
239
|
-
rubygems_version: 2.
|
239
|
+
rubygems_version: 2.6.8
|
240
240
|
signing_key:
|
241
241
|
specification_version: 4
|
242
242
|
summary: Access controls for project hydra
|
@@ -269,4 +269,3 @@ test_files:
|
|
269
269
|
- spec/unit/visibility_spec.rb
|
270
270
|
- spec/unit/with_access_right_spec.rb
|
271
271
|
- spec/validators/future_date_validator_spec.rb
|
272
|
-
has_rdoc:
|