hydra-access-controls 6.1.1 → 6.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: 8aa9a9ba62eeb9030329ff121f35ea64ce5833b6
|
4
|
+
data.tar.gz: 3801bd2b2a23ce8e62a7af0d522b16a7f49f7794
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71123bf8489eca05d1eb124a7b815b7e97148cd6bac7e9886dbc1613cba2735312fae40c90129cc297f47032b65fccc896d63d1233c3077ceccbb869a8885197
|
7
|
+
data.tar.gz: fcea17d03eae35064878aa41691c5d923d65f3765d8175ce16ae207512e5f10a09a8fa2e7916ec168b510566f8e8f3c462e8325a070a4f9a0eeaa8e902a5a1a4
|
@@ -89,9 +89,13 @@ module Hydra::AccessControlsEnforcement
|
|
89
89
|
|
90
90
|
|
91
91
|
# Which permission levels (logical OR) will grant you the ability to discover documents in a search.
|
92
|
+
|
92
93
|
# Override this method if you want it to be something other than the default
|
93
94
|
def discovery_permissions
|
94
|
-
["edit","discover","read"]
|
95
|
+
@discovery_permissions ||= ["edit","discover","read"]
|
96
|
+
end
|
97
|
+
def disocvery_permissions= (permissions)
|
98
|
+
@discovery_permissions = permissions
|
95
99
|
end
|
96
100
|
|
97
101
|
# Contrller before filter that sets up access-controlled lucene query in order to provide gated discovery behavior
|
@@ -187,7 +187,10 @@ module Hydra
|
|
187
187
|
vals = read_access.machine.person
|
188
188
|
solr_doc[ActiveFedora::SolrService.solr_name('read_access_person', indexer)] = vals unless vals.empty?
|
189
189
|
|
190
|
-
|
190
|
+
if embargo_release_date
|
191
|
+
embargo_release_date_solr_key_name = ActiveFedora::SolrService.solr_name("embargo_release_date", date_indexer)
|
192
|
+
::Solrizer::Extractor.insert_solr_field_value(solr_doc, embargo_release_date_solr_key_name , embargo_release_date(:format=>:solr_date))
|
193
|
+
end
|
191
194
|
solr_doc
|
192
195
|
end
|
193
196
|
|
@@ -35,6 +35,14 @@ describe Hydra::AccessControlsEnforcement do
|
|
35
35
|
@solr_parameters[:fq].first.should_not match(/registered/)
|
36
36
|
end
|
37
37
|
it "Then I should not have individual or group permissions"
|
38
|
+
it "Should changed based on the discovery_perissions" do
|
39
|
+
@solr_parameters = {}
|
40
|
+
discovery_permissions = ["read","edit"]
|
41
|
+
subject.send(:apply_gated_discovery, @solr_parameters, @user_parameters)
|
42
|
+
["edit","read"].each do |type|
|
43
|
+
@solr_parameters[:fq].first.should match(/#{type}_access_group_ssim\:public/)
|
44
|
+
end
|
45
|
+
end
|
38
46
|
end
|
39
47
|
context "Given I am a registered user" do
|
40
48
|
before do
|
@@ -64,6 +72,16 @@ describe Hydra::AccessControlsEnforcement do
|
|
64
72
|
end
|
65
73
|
end
|
66
74
|
end
|
75
|
+
it "Should changed based on the discovery_perissions" do
|
76
|
+
@solr_parameters = {}
|
77
|
+
discovery_permissions = ["read","edit"]
|
78
|
+
subject.send(:apply_gated_discovery, @solr_parameters, @user_parameters)
|
79
|
+
["faculty", "africana-faculty"].each do |group_id|
|
80
|
+
["edit","read"].each do |type|
|
81
|
+
@solr_parameters[:fq].first.should match(/#{type}_access_group_ssim\:#{group_id}/)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
67
85
|
end
|
68
86
|
end
|
69
87
|
|
@@ -54,18 +54,21 @@ describe Hydra::ModelMixins::RightsMetadata do
|
|
54
54
|
end
|
55
55
|
|
56
56
|
context "to_solr" do
|
57
|
+
let(:embargo_release_date) { "2010-12-01" }
|
57
58
|
before do
|
59
|
+
subject.rightsMetadata.embargo_release_date = embargo_release_date
|
58
60
|
subject.rightsMetadata.update_permissions("person"=>{"person1"=>"read","person2"=>"discover"}, "group"=>{'group-6' => 'read', "group-7"=>'read', 'group-8'=>'edit'})
|
59
61
|
end
|
60
62
|
it "should produce a solr document" do
|
61
63
|
result = subject.rightsMetadata.to_solr
|
62
|
-
result.size.should ==
|
64
|
+
result.size.should == 5
|
63
65
|
## Wrote the test in this way, because the implementation uses a hash, and the hash order is not deterministic (especially in ruby 1.8.7)
|
64
66
|
result['read_access_group_ssim'].size.should == 2
|
65
67
|
result['read_access_group_ssim'].should include('group-6', 'group-7')
|
66
68
|
result['edit_access_group_ssim'].should == ['group-8']
|
67
69
|
result['discover_access_person_ssim'].should == ['person2']
|
68
70
|
result['read_access_person_ssim'].should == ['person1']
|
71
|
+
result['embargo_release_date_dtsi'].should == subject.rightsMetadata.embargo_release_date(:format => :solr_date)
|
69
72
|
end
|
70
73
|
end
|
71
74
|
|
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: 6.
|
4
|
+
version: 6.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: 2013-05-
|
13
|
+
date: 2013-05-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|