hydra-access-controls 11.0.0.rc2 → 11.0.6

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
  SHA256:
3
- metadata.gz: c1c375e2d0865e3c30b810323eab035c5ecd19e058417c7bf1c486c360862df5
4
- data.tar.gz: 209bdc9997eead2dac861e6c628555c3d1367a47ab2a79485d75d1634641e845
3
+ metadata.gz: 9a286d397032ccf1ba4e2df1ea63470a75184cc7f7f98ed053663d33f593683c
4
+ data.tar.gz: a4c7de8fa18771222b5710bb954ad59c3011420ed7f3b02bc241105559712962
5
5
  SHA512:
6
- metadata.gz: cccfdc0d8acf8d16fe0a78f7e953c7f2a9ee5760431ebca7f8c726b223faff8e9faffb89ebeaf77c0f3359f454170a64662b791743fe066915ece9412cdb808f
7
- data.tar.gz: 24be0383b71eeac26a4517c49f6a11c4c19595bf8d788278f32f3c62d62cf94523a8bae5fa533a2cb941c9183497bdd701c4661691906c470da2916bf54ebcdf
6
+ metadata.gz: 9647db12b9efdac6049bc6fd770e200b4e9f28e1a8d5e5f8e357f8a8020d5390bd68eb0cc03bda037dc0a4d1db89048dcba5c9db387086d98e0474d770302a81
7
+ data.tar.gz: cffcd8456b9e636e4e4957fc02a1709c3fad8764658205ea851bebdc7109bb2f68a7ea8e56f8343bcce33301446dbe29daa02fe47582067291b3894a2108f0c4
@@ -8,8 +8,8 @@ module Hydra
8
8
  validates :lease_expiration_date, :'hydra/future_date' => true, if: :enforce_future_date_for_lease?
9
9
  validates :embargo_release_date, :'hydra/future_date' => true, if: :enforce_future_date_for_embargo?
10
10
 
11
- belongs_to :embargo, predicate: Hydra::ACL.hasEmbargo, class_name: 'Hydra::AccessControls::Embargo'
12
- belongs_to :lease, predicate: Hydra::ACL.hasLease, class_name: 'Hydra::AccessControls::Lease'
11
+ belongs_to :embargo, predicate: Hydra::ACL.hasEmbargo, class_name: 'Hydra::AccessControls::Embargo', autosave: true
12
+ belongs_to :lease, predicate: Hydra::ACL.hasLease, class_name: 'Hydra::AccessControls::Lease', autosave: true
13
13
 
14
14
  delegate :visibility_during_embargo, :visibility_during_embargo=, :visibility_after_embargo, :visibility_after_embargo=, :embargo_release_date, :embargo_release_date=, :embargo_history, :embargo_history=, to: :existing_or_new_embargo
15
15
  delegate :visibility_during_lease, :visibility_during_lease=, :visibility_after_lease, :visibility_after_lease=, :lease_expiration_date, :lease_expiration_date=, :lease_history, :lease_history=, to: :existing_or_new_lease
@@ -19,6 +19,59 @@ describe Hydra::AccessControls::Embargoable do
19
19
  let(:model) { TestModel.new }
20
20
  subject { model }
21
21
 
22
+ describe 'an object under embargo/lease' do
23
+ before do
24
+ class ModelWithPersistence < ActiveFedora::Base
25
+ include Hydra::AccessControls::Embargoable
26
+ end
27
+ end
28
+ after { Object.send(:remove_const, :ModelWithPersistence) }
29
+ let(:original_date) { 7.days.from_now }
30
+ let(:updated_date) { 14.days.from_now }
31
+ subject { ModelWithPersistence.new }
32
+ context 'saved with a new embargo release date' do
33
+ it 'will persist the new date' do
34
+ subject.visibility_during_embargo = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE
35
+ subject.visibility_after_embargo = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC
36
+ subject.embargo_release_date = original_date
37
+ subject.save
38
+
39
+ # These next three lines are to verify the round-trip for saves.
40
+ persisted_object = subject.class.find(subject.id)
41
+ expect(persisted_object).to be_under_embargo
42
+ expect(persisted_object.embargo_release_date).to eq(original_date)
43
+
44
+ expect do
45
+ persisted_object.embargo_release_date = updated_date
46
+ persisted_object.save
47
+ end.to change { persisted_object.class.find(persisted_object.id).embargo_release_date }
48
+ .from(original_date)
49
+ .to(updated_date)
50
+ end
51
+ end
52
+
53
+ context 'saved with a new lease expiration date' do
54
+ it 'will persist the new date' do
55
+ subject.visibility_during_lease = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC
56
+ subject.visibility_after_lease = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE
57
+ subject.lease_expiration_date = original_date
58
+ subject.save
59
+
60
+ # These next three lines are to verify the round-trip for saves.
61
+ persisted_object = subject.class.find(subject.id)
62
+ expect(persisted_object).to be_active_lease
63
+ expect(persisted_object.lease_expiration_date).to eq(original_date)
64
+
65
+ expect do
66
+ persisted_object.lease_expiration_date = updated_date
67
+ persisted_object.save
68
+ end.to change { persisted_object.class.find(persisted_object.id).lease_expiration_date }
69
+ .from(original_date)
70
+ .to(updated_date)
71
+ end
72
+ end
73
+ end
74
+
22
75
  describe '#embargo_indexer_class' do
23
76
  subject { model.embargo_indexer_class }
24
77
  it { is_expected.to eq Hydra::AccessControls::EmbargoIndexer }
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: 11.0.0.rc2
4
+ version: 11.0.6
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: 2020-01-29 00:00:00.000000000 Z
13
+ date: 2021-03-31 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -226,11 +226,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
226
226
  version: 1.9.3
227
227
  required_rubygems_version: !ruby/object:Gem::Requirement
228
228
  requirements:
229
- - - ">"
229
+ - - ">="
230
230
  - !ruby/object:Gem::Version
231
- version: 1.3.1
231
+ version: '0'
232
232
  requirements: []
233
- rubygems_version: 3.0.4
233
+ rubygems_version: 3.1.4
234
234
  signing_key:
235
235
  specification_version: 4
236
236
  summary: Access controls for project hydra