hydra-access-controls 10.6.2 → 11.0.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
  SHA256:
3
- metadata.gz: 59c85b9ad05b984f2c51a16b14fea58931a6d63f9b34e2b632869b7d96f8eea5
4
- data.tar.gz: f2b1c0daa69c0afee47b4065eaff8507326cadfbce996ad338554760a827015c
3
+ metadata.gz: e4b22da24ea67d1fdb58bfce4044fa0d7c7167640bd7fb7c89bce988e0571595
4
+ data.tar.gz: 6adce22a2c6036385cd97550dfb51e11e23eea2b72b11076fcd0e54bb96f0ee6
5
5
  SHA512:
6
- metadata.gz: '018366d44ecf5c886e36da31dd5a61ebb7c38b2156ecf2f60c59b0c767fb206b56b4b7fae547538d75fdb16748df4718b8f657ddd01389c489cd05d821216c6f'
7
- data.tar.gz: d61093876bcebebb316f74aa0bebe9eee6d9349c017c45ea9c61a4a4b02ffde9578a12404973a4299d5e4b6d618e210fa2356574bd2306e71e1917f0c21205cc
6
+ metadata.gz: 17ae9693da60445afd084147a730c0cb86d585d5402ca8e88f4483d6cfd8b75cae3a41f4b241121dafba1d2ef6e868a33cf887cc8ba4d9cbf2e02deae415bd35
7
+ data.tar.gz: 0e4891b4c48b83db40d5e9e95da32630807a964dfbdd9ea84c5687adbf1092d319682c3fa5e006c1c4b76dc423ce5b50a77c2baae25916830a5b3ae0b5a44396
@@ -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
@@ -31,11 +31,11 @@ module Hydra
31
31
  obj.update(attributes.except(:id, '_destroy'))
32
32
  end
33
33
  else
34
- relationship.create(attributes)
34
+ relationship.build(attributes)
35
35
  end
36
36
  end
37
37
  # Poison the cache
38
- relationship.reset if any_destroyed
38
+ save! && relationship.reset if any_destroyed
39
39
  end
40
40
 
41
41
  def relationship
@@ -6,7 +6,7 @@ Gem::Specification.new do |gem|
6
6
  gem.email = ["hydra-tech@googlegroups.com"]
7
7
  gem.description = %q{Access controls for project hydra}
8
8
  gem.summary = %q{Access controls for project hydra}
9
- gem.homepage = "http://projecthydra.org"
9
+ gem.homepage = "https://github.com/samvera/hydra-head/tree/master/hydra-access-controls"
10
10
 
11
11
  gem.files = `git ls-files`.split($\)
12
12
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
@@ -19,7 +19,7 @@ Gem::Specification.new do |gem|
19
19
  gem.required_ruby_version = '>= 1.9.3'
20
20
 
21
21
  gem.add_dependency 'activesupport', '>= 4', '< 6'
22
- gem.add_dependency "active-fedora", '>= 10.0.0', '< 13'
22
+ gem.add_dependency "active-fedora", '>= 10.0.0'
23
23
  gem.add_dependency "blacklight", '>= 5.16'
24
24
  gem.add_dependency "blacklight-access_controls", '~> 0.6.0'
25
25
  gem.add_dependency 'cancancan', '~> 1.8'
@@ -12,7 +12,7 @@ Hydra::Engine.config.autoload_paths.each { |path| $LOAD_PATH.unshift path }
12
12
  require 'byebug' unless ENV['CI']
13
13
 
14
14
  def coverage_needed?
15
- ENV['COVERAGE'] || ENV['TRAVIS']
15
+ ENV['COVERAGE'] || ENV['CI']
16
16
  end
17
17
 
18
18
  if RUBY_VERSION =~ /^1.9/ && coverage_needed?
@@ -23,7 +23,7 @@ describe "active_fedora/accessible_by" do
23
23
 
24
24
  describe "#accsesible_by" do
25
25
  it "should return objects readable by the ability" do
26
- expect(ModsAsset.accessible_by(ability)).to eq [public_obj, editable_obj]
26
+ expect(ModsAsset.accessible_by(ability)).to contain_exactly(public_obj, editable_obj)
27
27
  end
28
28
  it "should return object editable by the ability" do
29
29
  expect(ModsAsset.accessible_by(ability, :edit)).to eq [editable_obj]
@@ -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 }
@@ -6,7 +6,7 @@ namespace "hydra-access" do
6
6
  fcrepo_params = { port: 8986, verbose: true, managed: true,
7
7
  no_jms: true, fcrepo_home_dir: 'fcrepo4-test-data' }
8
8
  SolrWrapper.wrap(solr_params) do |solr|
9
- solr.with_collection(name: 'hydra-test', dir: File.join(File.expand_path("../..", File.dirname(__FILE__)), "solr", "config")) do
9
+ solr.with_collection(name: 'hydra-test', dir: File.join(File.expand_path("../..", File.dirname(__FILE__)), "solr", "conf")) do
10
10
  FcrepoWrapper.wrap(fcrepo_params) do
11
11
  Rake::Task['spec'].invoke
12
12
  end
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: 10.6.2
4
+ version: 11.0.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: 2019-03-06 00:00:00.000000000 Z
13
+ date: 2020-10-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -39,9 +39,6 @@ dependencies:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: 10.0.0
42
- - - "<"
43
- - !ruby/object:Gem::Version
44
- version: '13'
45
42
  type: :runtime
46
43
  prerelease: false
47
44
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,9 +46,6 @@ dependencies:
49
46
  - - ">="
50
47
  - !ruby/object:Gem::Version
51
48
  version: 10.0.0
52
- - - "<"
53
- - !ruby/object:Gem::Version
54
- version: '13'
55
49
  - !ruby/object:Gem::Dependency
56
50
  name: blacklight
57
51
  requirement: !ruby/object:Gem::Requirement
@@ -217,7 +211,7 @@ files:
217
211
  - spec/unit/with_depositor_spec.rb
218
212
  - spec/validators/future_date_validator_spec.rb
219
213
  - tasks/hydra-access-controls.rake
220
- homepage: http://projecthydra.org
214
+ homepage: https://github.com/samvera/hydra-head/tree/master/hydra-access-controls
221
215
  licenses:
222
216
  - APACHE-2.0
223
217
  metadata: {}
@@ -236,7 +230,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
230
  - !ruby/object:Gem::Version
237
231
  version: '0'
238
232
  requirements: []
239
- rubygems_version: 3.0.3
233
+ rubygems_version: 3.1.2
240
234
  signing_key:
241
235
  specification_version: 4
242
236
  summary: Access controls for project hydra