hydra-access-controls 6.4.2 → 6.5.0.rc2
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 +4 -4
- data/hydra-access-controls.gemspec +1 -1
- data/lib/hydra/datastream/rights_metadata.rb +1 -1
- data/lib/hydra/permissions_query.rb +1 -3
- data/spec/factories.rb +5 -5
- data/spec/support/mods_asset.rb +3 -3
- data/spec/unit/hydra_rights_metadata_persistence_spec.rb +1 -2
- data/spec/unit/hydra_rights_metadata_spec.rb +0 -5
- data/spec/unit/{permission.rb → permission_spec.rb} +0 -0
- data/spec/unit/permissions_spec.rb +1 -0
- data/spec/unit/rights_metadata_spec.rb +26 -26
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58f7fe363bfe546c4b71a9dcbb957f891ed47196
|
4
|
+
data.tar.gz: 01cbe8640cdb8da959c7db447f64d68997408225
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1cf8e0953ce0fe6870b7fa74e166615baab44a8fa83fd1018f7b59b4adfac72fd58e0a71edc329018d2f4e03ff7c8a06ddde4402f3aa1b51aa461a67f359f4f
|
7
|
+
data.tar.gz: e53f7c53fbd15308bb1aef82966cbb8e73f615e8d832f38dd4e0e9d162a31fd586d506d5e8af79d39b3021dab6b9e0aa71d4d3acb65b5c48ac7bafde3d98def3
|
@@ -22,7 +22,7 @@ Gem::Specification.new do |gem|
|
|
22
22
|
gem.add_dependency "active-fedora", '~> 6.7'
|
23
23
|
gem.add_dependency 'cancan'
|
24
24
|
gem.add_dependency 'deprecation'
|
25
|
-
gem.add_dependency 'blacklight', '~> 4.
|
25
|
+
gem.add_dependency 'blacklight', '~> 4.7'
|
26
26
|
|
27
27
|
gem.add_development_dependency "rake"
|
28
28
|
gem.add_development_dependency 'rspec'
|
@@ -170,7 +170,7 @@ module Hydra
|
|
170
170
|
def embargo_release_date=(release_date)
|
171
171
|
release_date = release_date.to_s if release_date.is_a? Date
|
172
172
|
begin
|
173
|
-
|
173
|
+
Date.parse(release_date)
|
174
174
|
rescue
|
175
175
|
return "INVALID DATE"
|
176
176
|
end
|
@@ -24,10 +24,8 @@ module Hydra
|
|
24
24
|
# @param [Hash] extra_controller_params (optional)
|
25
25
|
def get_permissions_solr_response_for_doc_id(id=nil, extra_controller_params={})
|
26
26
|
raise Blacklight::Exceptions::InvalidSolrID.new("The application is trying to retrieve permissions without specifying an asset id") if id.nil?
|
27
|
-
#solr_response = Blacklight.solr.get permissions_solr_doc_params(id).merge(extra_controller_params)
|
28
|
-
#path = blacklight_config.solr_path
|
29
27
|
solr_opts = permissions_solr_doc_params(id).merge(extra_controller_params)
|
30
|
-
response =
|
28
|
+
response = ActiveFedora::SolrService.instance.conn.get('select', :params=>solr_opts)
|
31
29
|
solr_response = Blacklight::SolrResponse.new(force_to_utf8(response), solr_opts)
|
32
30
|
|
33
31
|
raise Blacklight::Exceptions::InvalidSolrID.new("The solr permissions search handler didn't return anything for id \"#{id}\"") if solr_response.docs.empty?
|
data/spec/factories.rb
CHANGED
@@ -82,23 +82,23 @@ FactoryGirl.define do
|
|
82
82
|
end
|
83
83
|
|
84
84
|
factory :default_access_asset, :parent=>:asset do |a|
|
85
|
-
|
85
|
+
permissions_attributes [{:name=>"joe_creator", :access=>"edit", :type=>"user"}]
|
86
86
|
end
|
87
87
|
|
88
88
|
factory :dept_access_asset, :parent=>:asset do |a|
|
89
|
-
|
89
|
+
permissions_attributes [{:name=>"africana-faculty", :access=>"read", :type=>"group"}, {:name=>"joe_creator", :access=>"edit", :type=>"user"}]
|
90
90
|
end
|
91
91
|
|
92
92
|
factory :group_edit_asset, :parent=>:asset do |a|
|
93
|
-
|
93
|
+
permissions_attributes [{:name=>"africana-faculty", :access=>"edit", :type=>"group"}, {:name=>"calvin_collaborator", :access=>"edit", :type=>"user"}]
|
94
94
|
end
|
95
95
|
|
96
96
|
factory :org_read_access_asset, :parent=>:asset do |a|
|
97
|
-
|
97
|
+
permissions_attributes [{:name=>"registered", :access=>"read", :type=>"group"}, {:name=>"joe_creator", :access=>"edit", :type=>"user"}, {:name=>"calvin_collaborator", :access=>"edit", :type=>"user"}]
|
98
98
|
end
|
99
99
|
|
100
100
|
factory :open_access_asset, :parent=>:asset do |a|
|
101
|
-
|
101
|
+
permissions_attributes [{:name=>"public", :access=>"read", :type=>"group"}, {:name=>"joe_creator", :access=>"edit", :type=>"user"}, {:name=>"calvin_collaborator", :access=>"edit", :type=>"user"}]
|
102
102
|
end
|
103
103
|
|
104
104
|
end
|
data/spec/support/mods_asset.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'active-fedora'
|
2
|
+
|
2
3
|
class ModsAsset < ActiveFedora::Base
|
3
|
-
include Hydra::
|
4
|
-
|
5
|
-
|
4
|
+
include Hydra::AccessControls::Permissions
|
5
|
+
|
6
6
|
# This is how we're associating admin policies with assets.
|
7
7
|
# You can associate them however you want, just use the :is_governed_by relationship
|
8
8
|
belongs_to :admin_policy, :class_name=> "Hydra::AdminPolicy", :property=>:is_governed_by
|
@@ -3,8 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe Hydra::Datastream::RightsMetadata do
|
4
4
|
before :all do
|
5
5
|
class RightsTest < ActiveFedora::Base
|
6
|
-
include Hydra::
|
7
|
-
has_metadata name: 'rightsMetadata', type: Hydra::Datastream::RightsMetadata
|
6
|
+
include Hydra::AccessControls::Permissions
|
8
7
|
end
|
9
8
|
end
|
10
9
|
|
@@ -176,11 +176,6 @@ describe Hydra::Datastream::RightsMetadata do
|
|
176
176
|
it "should only accept valid date values" do
|
177
177
|
|
178
178
|
end
|
179
|
-
it "should accept a nil value after having a date value" do
|
180
|
-
@sample.embargo_release_date=("2010-12-01")
|
181
|
-
@sample.embargo_release_date=(nil)
|
182
|
-
@sample.embargo_release_date.should == nil
|
183
|
-
end
|
184
179
|
end
|
185
180
|
describe "embargo_release_date" do
|
186
181
|
it "should return solr formatted date" do
|
File without changes
|
@@ -115,6 +115,7 @@ describe Hydra::AccessControls::Permissions do
|
|
115
115
|
it "should behave like #permissions_attributes=" do
|
116
116
|
foo1 = Foo.new
|
117
117
|
foo2 = Foo.new
|
118
|
+
Deprecation.stub(:warn).and_return(nil)
|
118
119
|
foo1.permissions = [{type: "user", access: "edit", name: "editor"}]
|
119
120
|
foo2.permissions_attributes = [{type: "user", access: "edit", name: "editor"}]
|
120
121
|
foo1.permissions.should == foo2.permissions
|
@@ -6,50 +6,50 @@ describe Hydra::ModelMixins::RightsMetadata do
|
|
6
6
|
subject.discover_groups=['group1', 'group2']
|
7
7
|
subject.edit_users=['user1']
|
8
8
|
subject.read_users=['user2', 'user3']
|
9
|
-
subject.permissions.should include({:type=>"group", :access=>"discover", :name=>"group1"},
|
10
|
-
{:type=>"group", :access=>"discover", :name=>"group2"},
|
11
|
-
{:type=>"user", :access=>"read", :name=>"user2"},
|
12
|
-
{:type=>"user", :access=>"read", :name=>"user3"},
|
13
|
-
{:type=>"user", :access=>"edit", :name=>"user1"})
|
9
|
+
subject.permissions.should include(Hydra::AccessControls::Permission.new({:type=>"group", :access=>"discover", :name=>"group1"}),
|
10
|
+
Hydra::AccessControls::Permission.new({:type=>"group", :access=>"discover", :name=>"group2"}),
|
11
|
+
Hydra::AccessControls::Permission.new({:type=>"user", :access=>"read", :name=>"user2"}),
|
12
|
+
Hydra::AccessControls::Permission.new({:type=>"user", :access=>"read", :name=>"user3"}),
|
13
|
+
Hydra::AccessControls::Permission.new({:type=>"user", :access=>"edit", :name=>"user1"}))
|
14
14
|
end
|
15
15
|
|
16
16
|
describe "updating permissions" do
|
17
17
|
it "should create new group permissions" do
|
18
|
-
subject.
|
19
|
-
subject.permissions.should == [{:type=>'group', :access=>'discover', :name=>'group1'}]
|
18
|
+
subject.permissions_attributes = [{:name=>'group1', :access=>'discover', :type=>'group'}]
|
19
|
+
subject.permissions.should == [Hydra::AccessControls::Permission.new({:type=>'group', :access=>'discover', :name=>'group1'})]
|
20
20
|
end
|
21
21
|
it "should create new user permissions" do
|
22
|
-
subject.
|
23
|
-
subject.permissions.should == [{:type=>'user', :access=>'discover', :name=>'user1'}]
|
22
|
+
subject.permissions_attributes = [{:name=>'user1', :access=>'discover', :type=>'user'}]
|
23
|
+
subject.permissions.should == [Hydra::AccessControls::Permission.new({:type=>'user', :access=>'discover', :name=>'user1'})]
|
24
24
|
end
|
25
25
|
it "should not replace existing groups" do
|
26
|
-
subject.
|
27
|
-
subject.
|
28
|
-
subject.permissions.should == [{:type=>'group', :access=>'discover', :name=>'group1'},
|
29
|
-
{:type=>'group', :access=>'discover', :name=>'group2'}]
|
26
|
+
subject.permissions_attributes = [{:name=>'group1', :access=>'discover', :type=>'group'}]
|
27
|
+
subject.permissions_attributes = [{:name=>'group2', :access=>'discover', :type=>'group'}]
|
28
|
+
subject.permissions.should == [Hydra::AccessControls::Permission.new({:type=>'group', :access=>'discover', :name=>'group1'}),
|
29
|
+
Hydra::AccessControls::Permission.new({:type=>'group', :access=>'discover', :name=>'group2'})]
|
30
30
|
end
|
31
31
|
it "should not replace existing users" do
|
32
|
-
subject.
|
33
|
-
subject.
|
34
|
-
subject.permissions.should == [{:type=>'user', :access=>'discover', :name=>'user1'},
|
35
|
-
{:type=>'user', :access=>'discover', :name=>'user2'}]
|
32
|
+
subject.permissions_attributes = [{:name=>'user1', :access=>'discover', :type=>'user'}]
|
33
|
+
subject.permissions_attributes = [{:name=>'user2', :access=>'discover', :type=>'user'}]
|
34
|
+
subject.permissions.should == [Hydra::AccessControls::Permission.new({:type=>'user', :access=>'discover', :name=>'user1'}),
|
35
|
+
Hydra::AccessControls::Permission.new({:type=>'user', :access=>'discover', :name=>'user2'})]
|
36
36
|
end
|
37
37
|
it "should update permissions on existing users" do
|
38
|
-
subject.
|
39
|
-
subject.
|
40
|
-
subject.permissions.should == [{:type=>'user', :access=>'edit', :name=>'user1'}]
|
38
|
+
subject.permissions_attributes = [{:name=>'user1', :access=>'discover', :type=>'user'}]
|
39
|
+
subject.permissions_attributes = [{:name=>'user1', :access=>'edit', :type=>'user'}]
|
40
|
+
subject.permissions.should == [Hydra::AccessControls::Permission.new({:type=>'user', :access=>'edit', :name=>'user1'})]
|
41
41
|
end
|
42
42
|
it "should update permissions on existing groups" do
|
43
|
-
subject.
|
44
|
-
subject.
|
45
|
-
subject.permissions.should == [{:type=>'group', :access=>'edit', :name=>'group1'}]
|
43
|
+
subject.permissions_attributes = [{:name=>'group1', :access=>'discover', :type=>'group'}]
|
44
|
+
subject.permissions_attributes = [{:name=>'group1', :access=>'edit', :type=>'group'}]
|
45
|
+
subject.permissions.should == [Hydra::AccessControls::Permission.new({:type=>'group', :access=>'edit', :name=>'group1'})]
|
46
46
|
end
|
47
47
|
it "should assign user permissions when :type == 'person'" do
|
48
|
-
subject.
|
49
|
-
subject.permissions.should == [{:type=>'user', :access=>'discover', :name=>'user1'}]
|
48
|
+
subject.permissions_attributes = [{:name=>'user1', :access=>'discover', :type=>'person'}]
|
49
|
+
subject.permissions.should == [Hydra::AccessControls::Permission.new({:type=>'user', :access=>'discover', :name=>'user1'})]
|
50
50
|
end
|
51
51
|
it "should raise an ArgumentError when the :type hashkey is invalid" do
|
52
|
-
expect{subject.
|
52
|
+
expect{subject.permissions_attributes = [{:name=>'user1', :access=>'read', :type=>'foo'}]}.to raise_error(ArgumentError)
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
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.5.0.rc2
|
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: 2014-
|
13
|
+
date: 2014-02-10 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -74,14 +74,14 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: '4.
|
77
|
+
version: '4.7'
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
82
|
- - ~>
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: '4.
|
84
|
+
version: '4.7'
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: rake
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
@@ -163,7 +163,7 @@ files:
|
|
163
163
|
- spec/unit/hydra_rights_metadata_persistence_spec.rb
|
164
164
|
- spec/unit/hydra_rights_metadata_spec.rb
|
165
165
|
- spec/unit/inheritable_rights_metadata_spec.rb
|
166
|
-
- spec/unit/
|
166
|
+
- spec/unit/permission_spec.rb
|
167
167
|
- spec/unit/permissions_spec.rb
|
168
168
|
- spec/unit/policy_aware_ability_spec.rb
|
169
169
|
- spec/unit/policy_aware_access_controls_enforcement_spec.rb
|
@@ -187,12 +187,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
187
187
|
version: 1.9.3
|
188
188
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
189
189
|
requirements:
|
190
|
-
- - '
|
190
|
+
- - '>'
|
191
191
|
- !ruby/object:Gem::Version
|
192
|
-
version:
|
192
|
+
version: 1.3.1
|
193
193
|
requirements: []
|
194
194
|
rubyforge_project:
|
195
|
-
rubygems_version: 2.
|
195
|
+
rubygems_version: 2.2.2
|
196
196
|
signing_key:
|
197
197
|
specification_version: 4
|
198
198
|
summary: Access controls for project hydra
|
@@ -213,7 +213,7 @@ test_files:
|
|
213
213
|
- spec/unit/hydra_rights_metadata_persistence_spec.rb
|
214
214
|
- spec/unit/hydra_rights_metadata_spec.rb
|
215
215
|
- spec/unit/inheritable_rights_metadata_spec.rb
|
216
|
-
- spec/unit/
|
216
|
+
- spec/unit/permission_spec.rb
|
217
217
|
- spec/unit/permissions_spec.rb
|
218
218
|
- spec/unit/policy_aware_ability_spec.rb
|
219
219
|
- spec/unit/policy_aware_access_controls_enforcement_spec.rb
|