hydra-access-controls 6.4.0 → 6.4.1
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c7889e840d3022c5487081cbb7e11c7abad06ab
|
4
|
+
data.tar.gz: b8323dbda12665dc1ee7d29bcc5b194dcd09f7fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b8e37c30ce82f7a2ac0c5f3d737ccc76ac0001675486d5bce88212b65ab786af187df510552ab05329f5da2e90da036e0e2022430d9c53f5c48aae4fd01198e9
|
7
|
+
data.tar.gz: 8b6be814f5af9b0c997c2dff7bbaa2c1a0f568135da51bc6411f92ef3555fa2271fd0228187d1f4d9d1111c9b5c2bb0104659f6197357bb31f3dbb08f7ec5bd8
|
@@ -22,10 +22,6 @@ module Hydra::AccessControlsEnforcement
|
|
22
22
|
permission_types = discovery_permissions
|
23
23
|
user_access_filters = []
|
24
24
|
|
25
|
-
permission_types.each do |type|
|
26
|
-
user_access_filters << ActiveFedora::SolrService.solr_name("#{type}_access_group", Hydra::Datastream::RightsMetadata.indexer) + ":public"
|
27
|
-
end
|
28
|
-
|
29
25
|
# Grant access based on user id & role
|
30
26
|
solr_access_filters_logic.each do |method_name|
|
31
27
|
user_access_filters += send(method_name, permission_types)
|
@@ -143,9 +143,11 @@ module Hydra
|
|
143
143
|
# @param params ex. {"group"=>{"group1"=>"discover","group2"=>"edit"}, "person"=>{"person1"=>"read","person2"=>"discover"}}
|
144
144
|
# Restricts actor type to group or person. Any others will be ignored
|
145
145
|
def permissions= (params)
|
146
|
-
|
146
|
+
groups_for_update = params['group'] ? params['group'].keys : []
|
147
|
+
group_ids = groups.keys | groups_for_update
|
147
148
|
group_ids.each {|group_id| self.permissions({"group"=>group_id}, params['group'].fetch(group_id, 'none'))}
|
148
|
-
|
149
|
+
users_for_update = params['person'] ? params['person'].keys : []
|
150
|
+
user_ids = individuals.keys | users_for_update
|
149
151
|
user_ids.each {|person_id| self.permissions({"person"=>person_id}, params['person'].fetch(person_id, 'none'))}
|
150
152
|
end
|
151
153
|
|
@@ -27,9 +27,7 @@ describe Hydra::AccessControlsEnforcement do
|
|
27
27
|
subject.send(:apply_gated_discovery, @solr_parameters, @user_parameters)
|
28
28
|
end
|
29
29
|
it "Then I should be treated as a member of the 'public' group" do
|
30
|
-
[
|
31
|
-
@solr_parameters[:fq].first.should match(/#{type}_access_group_ssim\:public/)
|
32
|
-
end
|
30
|
+
expect(@solr_parameters[:fq].first).to eq 'edit_access_group_ssim:public OR discover_access_group_ssim:public OR read_access_group_ssim:public'
|
33
31
|
end
|
34
32
|
it "Then I should not be treated as a member of the 'registered' group" do
|
35
33
|
@solr_parameters[:fq].first.should_not match(/registered/)
|
@@ -31,6 +31,12 @@ describe Hydra::Datastream::RightsMetadata do
|
|
31
31
|
|
32
32
|
describe "permissions" do
|
33
33
|
describe "setter" do
|
34
|
+
it "should set person permissions" do
|
35
|
+
@sample.permissions = {"person"=>{"maria"=>"read","marcus"=>"discover"}}
|
36
|
+
end
|
37
|
+
it "should set group permissions" do
|
38
|
+
@sample.permissions = {"group"=>{"librarians"=>"read","students"=>"discover"}}
|
39
|
+
end
|
34
40
|
it "should create/update/delete permissions for the given user/group" do
|
35
41
|
@sample.class.terminology.xpath_for(:access, :person, "person_123").should == '//oxns:access/oxns:machine/oxns:person[contains(., "person_123")]'
|
36
42
|
|
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.
|
4
|
+
version: 6.4.1
|
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-
|
13
|
+
date: 2013-11-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -191,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
191
191
|
version: '0'
|
192
192
|
requirements: []
|
193
193
|
rubyforge_project:
|
194
|
-
rubygems_version: 2.
|
194
|
+
rubygems_version: 2.0.3
|
195
195
|
signing_key:
|
196
196
|
specification_version: 4
|
197
197
|
summary: Access controls for project hydra
|