hydra-access-controls 5.0.0.pre9 → 5.0.0.pre10

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.
data/README.textile CHANGED
@@ -66,7 +66,6 @@ Hydra uses its own set of default solr field names to track rights-related metad
66
66
  Hydra.configure(:shared) do |config|
67
67
  # ... other stuff ...
68
68
  config[:permissions] = {
69
- :catchall => "access_t",
70
69
  :discover => {:group =>"discover_access_group_t", :individual=>"discover_access_person_t"},
71
70
  :read => {:group =>"read_access_group_t", :individual=>"read_access_person_t"},
72
71
  :edit => {:group =>"edit_access_group_t", :individual=>"edit_access_person_t"},
@@ -74,7 +73,6 @@ Hydra uses its own set of default solr field names to track rights-related metad
74
73
  :embargo_release_date => "embargo_release_date_dt"
75
74
  }
76
75
  config[:permissions][:inheritable] = {
77
- :catchall => "inheritable_access_t",
78
76
  :discover => {:group =>"inheritable_discover_access_group_t", :individual=>"inheritable_discover_access_person_t"},
79
77
  :read => {:group =>"inheritable_read_access_group_t", :individual=>"inheritable_read_access_person_t"},
80
78
  :edit => {:group =>"inheritable_edit_access_group_t", :individual=>"inheritable_edit_access_person_t"},
@@ -1,4 +1,7 @@
1
1
  require 'active_support'
2
+ # TODO would it be possible to put the require fedora in an after_initialize block like this?
3
+ #ActiveSupport.on_load(:after_initialize) do
4
+ # This would allow solrizer to load it's config files after the rails logger is up.
2
5
  require 'active-fedora'
3
6
  require 'cancan'
4
7
 
@@ -7,7 +7,6 @@ module Hydra
7
7
  @terminology = Hydra::Datastream::RightsMetadata.terminology
8
8
 
9
9
  def to_solr(solr_doc=Hash.new)
10
- solr_doc["inheritable_access_t"] = access.machine.group.val + access.machine.person.val
11
10
  solr_doc["inheritable_discover_access_group_t"] = discover_access.machine.group
12
11
  solr_doc["inheritable_discover_access_person_t"] = discover_access.machine.person
13
12
  solr_doc["inheritable_read_access_group_t"] = read_access.machine.group
@@ -19,4 +18,4 @@ module Hydra
19
18
  end
20
19
  end
21
20
  end
22
- end
21
+ end
@@ -21,7 +21,7 @@ module Hydra
21
21
  t.description(:path=>'human', :attributes=>{:type=>'description'})
22
22
  t.url(:path=>'machine', :attributes=>{:type=>'uri'})
23
23
  }
24
- t.access {
24
+ t.access do
25
25
  t.human_readable(:path=>"human")
26
26
  t.machine {
27
27
  t.group
@@ -30,7 +30,7 @@ module Hydra
30
30
  t.person(:proxy=>[:machine, :person])
31
31
  t.group(:proxy=>[:machine, :group])
32
32
  # accessor :access_person, :term=>[:access, :machine, :person]
33
- }
33
+ end
34
34
  t.discover_access(:ref=>[:access], :attributes=>{:type=>"discover"})
35
35
  t.read_access(:ref=>[:access], :attributes=>{:type=>"read"})
36
36
  t.edit_access(:ref=>[:access], :attributes=>{:type=>"edit"})
@@ -175,6 +175,19 @@ module Hydra
175
175
 
176
176
  def to_solr(solr_doc=Hash.new)
177
177
  super(solr_doc)
178
+ vals = edit_access.machine.group
179
+ solr_doc['edit_access_group_t'] = vals unless vals.empty?
180
+ vals = discover_access.machine.group
181
+ solr_doc['discover_access_group_t'] = vals unless vals.empty?
182
+ vals = read_access.machine.group
183
+ solr_doc['read_access_group_t'] = vals unless vals.empty?
184
+ vals = edit_access.machine.person
185
+ solr_doc['edit_access_person_t'] = vals unless vals.empty?
186
+ vals = discover_access.machine.person
187
+ solr_doc['discover_access_person_t'] = vals unless vals.empty?
188
+ vals = read_access.machine.person
189
+ solr_doc['read_access_person_t'] = vals unless vals.empty?
190
+
178
191
  ::Solrizer::Extractor.insert_solr_field_value(solr_doc, "embargo_release_date_dt", embargo_release_date(:format=>:solr_date)) if embargo_release_date
179
192
  solr_doc
180
193
  end
@@ -5,7 +5,6 @@ describe Ability do
5
5
  before do
6
6
  Hydra.stub(:config).and_return({
7
7
  :permissions=>{
8
- :catchall => "access_t",
9
8
  :discover => {:group =>"discover_access_group_t", :individual=>"discover_access_person_t"},
10
9
  :read => {:group =>"read_access_group_t", :individual=>"read_access_person_t"},
11
10
  :edit => {:group =>"edit_access_group_t", :individual=>"edit_access_person_t"},
@@ -13,7 +12,6 @@ describe Ability do
13
12
  :embargo_release_date => "embargo_release_date_dt",
14
13
 
15
14
  :inheritable => {
16
- :catchall => "inheritable_access_t",
17
15
  :discover => {:group =>"inheritable_discover_access_group_t", :individual=>"inheritable_discover_access_person_t"},
18
16
  :read => {:group =>"inheritable_read_access_group_t", :individual=>"inheritable_read_access_person_t"},
19
17
  :edit => {:group =>"inheritable_edit_access_group_t", :individual=>"inheritable_edit_access_person_t"},
@@ -3,7 +3,6 @@ require 'spec_helper'
3
3
  describe Hydra::AdminPolicy do
4
4
  before do
5
5
  Hydra.stub(:config).and_return({:permissions=>{
6
- :catchall => "access_t",
7
6
  :discover => {:group =>"discover_access_group_t", :individual=>"discover_access_person_t"},
8
7
  :read => {:group =>"read_access_group_t", :individual=>"read_access_person_t"},
9
8
  :edit => {:group =>"edit_access_group_t", :individual=>"edit_access_person_t"},
@@ -11,7 +10,6 @@ describe Hydra::AdminPolicy do
11
10
  :embargo_release_date => "embargo_release_date_dt",
12
11
 
13
12
  :inheritable => {
14
- :catchall => "inheritable_access_t",
15
13
  :discover => {:group =>"inheritable_discover_access_group_t", :individual=>"inheritable_discover_access_person_t"},
16
14
  :read => {:group =>"inheritable_read_access_group_t", :individual=>"inheritable_read_access_person_t"},
17
15
  :edit => {:group =>"inheritable_edit_access_group_t", :individual=>"inheritable_edit_access_person_t"},
@@ -62,7 +60,7 @@ describe Hydra::AdminPolicy do
62
60
  describe "to_solr" do
63
61
  subject {@policy.to_solr}
64
62
  it "should not affect normal solr permissions fields" do
65
- subject.should_not have_key( Hydra.config[:permissions][:catchall] )
63
+ puts subject
66
64
  subject.should_not have_key( Hydra.config[:permissions][:discover][:group] )
67
65
  subject.should_not have_key( Hydra.config[:permissions][:discover][:individual] )
68
66
  subject.should_not have_key( Hydra.config[:permissions][:read][:group] )
@@ -72,9 +70,6 @@ describe Hydra::AdminPolicy do
72
70
  subject.should_not have_key( Hydra.config[:permissions][:embargo_release_date] )
73
71
  end
74
72
  it "should provide prefixed/inherited solr permissions fields" do
75
- catchall = Hydra.config[:permissions][:inheritable][:catchall]
76
- subject[catchall].should have(7).items
77
- subject[catchall].should include("posers", "slightlycoolkids", "africana-faculty", "cool-kids", "constantine", "nero", "julius_caesar")
78
73
  subject[Hydra.config[:permissions][:inheritable][:discover][:group] ].should == ["posers"]
79
74
  subject[Hydra.config[:permissions][:inheritable][:discover][:individual] ].should == ["constantine"]
80
75
  subject[Hydra.config[:permissions][:inheritable][:read][:group] ].should == ["slightlycoolkids"]
@@ -4,7 +4,6 @@ require "nokogiri"
4
4
  describe Hydra::Datastream::InheritableRightsMetadata do
5
5
  before do
6
6
  Hydra.stub(:config).and_return({:permissions=>{
7
- :catchall => "access_t",
8
7
  :discover => {:group =>"discover_access_group_t", :individual=>"discover_access_person_t"},
9
8
  :read => {:group =>"read_access_group_t", :individual=>"read_access_person_t"},
10
9
  :edit => {:group =>"edit_access_group_t", :individual=>"edit_access_person_t"},
@@ -12,7 +11,6 @@ describe Hydra::Datastream::InheritableRightsMetadata do
12
11
  :embargo_release_date => "embargo_release_date_dt",
13
12
 
14
13
  :inheritable => {
15
- :catchall => "inheritable_access_t",
16
14
  :discover => {:group =>"inheritable_discover_access_group_t", :individual=>"inheritable_discover_access_person_t"},
17
15
  :read => {:group =>"inheritable_read_access_group_t", :individual=>"inheritable_read_access_person_t"},
18
16
  :edit => {:group =>"inheritable_edit_access_group_t", :individual=>"inheritable_edit_access_person_t"},
@@ -42,7 +40,6 @@ describe Hydra::Datastream::InheritableRightsMetadata do
42
40
  describe "to_solr" do
43
41
  subject {@sample.to_solr}
44
42
  it "should NOT provide normal solr permissions fields" do
45
- subject.should_not have_key( Hydra.config[:permissions][:catchall] )
46
43
  subject.should_not have_key( Hydra.config[:permissions][:discover][:group] )
47
44
  subject.should_not have_key( Hydra.config[:permissions][:discover][:individual] )
48
45
  subject.should_not have_key( Hydra.config[:permissions][:read][:group] )
@@ -52,7 +49,6 @@ describe Hydra::Datastream::InheritableRightsMetadata do
52
49
  subject.should_not have_key( Hydra.config[:permissions][:embargo_release_date] )
53
50
  end
54
51
  it "should provide prefixed/inherited solr permissions fields" do
55
- subject[Hydra.config[:permissions][:inheritable][:catchall] ].should == ["posers", "slightly-cool-kids", "africana-faculty", "cool-kids", "constantine", "nero", "julius_caesar"]
56
52
  subject[Hydra.config[:permissions][:inheritable][:discover][:group] ].should == ["posers"]
57
53
  subject[Hydra.config[:permissions][:inheritable][:discover][:individual] ].should == ["constantine"]
58
54
  subject[Hydra.config[:permissions][:inheritable][:read][:group] ].should == ["slightly-cool-kids"]
@@ -4,7 +4,6 @@ describe Hydra::PolicyAwareAbility do
4
4
  before do
5
5
  Hydra.stub(:config).and_return({
6
6
  :permissions=>{
7
- :catchall => "access_t",
8
7
  :discover => {:group =>"discover_access_group_t", :individual=>"discover_access_person_t"},
9
8
  :read => {:group =>"read_access_group_t", :individual=>"read_access_person_t"},
10
9
  :edit => {:group =>"edit_access_group_t", :individual=>"edit_access_person_t"},
@@ -12,7 +11,6 @@ describe Hydra::PolicyAwareAbility do
12
11
  :embargo_release_date => "embargo_release_date_dt",
13
12
 
14
13
  :inheritable => {
15
- :catchall => "inheritable_access_t",
16
14
  :discover => {:group =>"inheritable_discover_access_group_t", :individual=>"inheritable_discover_access_person_t"},
17
15
  :read => {:group =>"inheritable_read_access_group_t", :individual=>"inheritable_read_access_person_t"},
18
16
  :edit => {:group =>"inheritable_edit_access_group_t", :individual=>"inheritable_edit_access_person_t"},
@@ -47,6 +47,22 @@ describe Hydra::ModelMixins::RightsMetadata do
47
47
 
48
48
  end
49
49
 
50
+ context "to_solr" do
51
+ before do
52
+ subject.rightsMetadata.update_permissions("person"=>{"person1"=>"read","person2"=>"discover"}, "group"=>{'group-6' => 'read', "group-7"=>'read', 'group-8'=>'edit'})
53
+ end
54
+ it "should produce a solr document" do
55
+ result = subject.rightsMetadata.to_solr
56
+ result.size.should == 4
57
+ ## 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)
58
+ result['read_access_group_t'].size.should == 2
59
+ result['read_access_group_t'].should include('group-6', 'group-7')
60
+ result['edit_access_group_t'].should == ['group-8']
61
+ result['discover_access_person_t'].should == ['person2']
62
+ result['read_access_person_t'].should == ['person1']
63
+ end
64
+ end
65
+
50
66
  context "with rightsMetadata" do
51
67
  before do
52
68
  subject.rightsMetadata.update_permissions("person"=>{"person1"=>"read","person2"=>"discover"}, "group"=>{'group-6' => 'read', "group-7"=>'read', 'group-8'=>'edit'})
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: 5.0.0.pre9
4
+ version: 5.0.0.pre10
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-10-13 00:00:00.000000000 Z
14
+ date: 2012-10-31 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport