sufia 3.4.0.rc1 → 3.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9e8b880c78652a7107ed7c477a2fd60ac2a18d9b
4
- data.tar.gz: f398c4358574df797fcaac72f0ba960c89f5cceb
3
+ metadata.gz: 8b88dc1dec7671c314b32538775b0691c7c01bb5
4
+ data.tar.gz: feb60f9924a19dc05ac5e0c7e71f19c387eaadf8
5
5
  SHA512:
6
- metadata.gz: 8f053ac8dcd4692883e481ee0645f72e3f58b0fba80cfb7f12d03b3428e0bf84fa81a5ca80cafba91c73773a37e59e258620fd6bb3b7d0761fb00cf0774df2ca
7
- data.tar.gz: 21ea3febe2601469eddf35eb786ab2848f2de7bb2a881153e1655d976242bf4ee9bbad12c4b7253f566217743d15af21b7b2996678d99f701ed183f7a9f4f257
6
+ metadata.gz: 9c3601baf4d5fc2f28d2e027072dadf1d239a703ea1c60584c944d8d3e03c2e71142b8adb2d119c771715ff278062f52f344d4bd027f154d8fcda5eb2f435450
7
+ data.tar.gz: 58484082783d403699c326e44774ddfd6698718d9f0549ec2cd2adaad07c4161644a7590510a691c837d6b5d09b7285c3e23668fbcc6b92045d2ef0eb3f6befc
data/History.md CHANGED
@@ -1,8 +1,15 @@
1
1
  # History of Sufia releases
2
2
 
3
- ## 3.4.0.rc1
4
- * 2013-10-01: Remove Visibility, which was moved into hydra-head [Justin Coyne]
5
- * 2013-10-01: Fix deprecation warnings by switching to
3
+ ## 3.4.0.rc2
4
+ * Moved trophies related methods to Trophies module [Justin Coyne]
5
+ * Move mime type related methods into MimeTypes module [Justin Coyne]
6
+ * Extract version methods into its own module [Justin Coyne]
7
+ * Extract metadata into its own module [Justin Coyne]
8
+ * Update to latest rc of hydra-head [Justin Coyne]
9
+ * AccessRight has moved into HydraHead [Justin Coyne]
10
+ * Remove cruft [ci skip] [Justin Coyne]
11
+ * Remove Visibility, which was moved into hydra-head [Justin Coyne]
12
+ * Fix deprecation warnings by switching to
6
13
  Hydra::AccessControls::Permissions [Justin Coyne]
7
14
  * 2013-09-27: Works with hydra 6.1.0.rc1 [Justin Coyne]
8
15
 
data/SUFIA_VERSION CHANGED
@@ -1 +1 @@
1
- 3.4.0.rc1
1
+ 3.4.0.rc2
data/UpgradeGuide.md ADDED
@@ -0,0 +1,3 @@
1
+ #Upgrading to Sufia 3.4.0
2
+
3
+ * If you are using Sufia::Models::AccessRight, substitute Hydra::AccessControls::AccessRight instead
@@ -60,13 +60,13 @@
60
60
  <h3>Visibility - <small>who should have the ability to read and download</small></h3>
61
61
  <div class="controls">
62
62
  <label class="radio">
63
- <input type="radio" id="visibility_open" name="visibility" value="<%=Sufia::Models::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC %>" <% if !public_perm.blank? %> checked="true"<% end %>/> <span class="label label-success">Open Access</span> Visible to the world.
63
+ <input type="radio" id="visibility_open" name="visibility" value="<%=Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC %>" <% if !public_perm.blank? %> checked="true"<% end %>/> <span class="label label-success">Open Access</span> Visible to the world.
64
64
  </label>
65
65
  <label class="radio">
66
- <input type="radio" id="visibility_psu" name="visibility" value="<%=Sufia::Models::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED %>" <% if !registered_perm.blank? %> checked="true"<% end %> /><span class="label label-info"><%=t('sufia.institution_name') %></span> Visible to all <%=t('sufia.institution_name') %> users.
66
+ <input type="radio" id="visibility_psu" name="visibility" value="<%=Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED %>" <% if !registered_perm.blank? %> checked="true"<% end %> /><span class="label label-info"><%=t('sufia.institution_name') %></span> Visible to all <%=t('sufia.institution_name') %> users.
67
67
  </label>
68
68
  <label class="radio">
69
- <input type="radio" id="visibility_restricted" name="visibility" value="<%=Sufia::Models::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE %>"<% if registered_perm.blank? and public_perm.blank?%> checked="true"<% end %> /> <span class="label label-important">Private</span> Visible to users/groups specified below, if any.
69
+ <input type="radio" id="visibility_restricted" name="visibility" value="<%=Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE %>"<% if registered_perm.blank? and public_perm.blank?%> checked="true"<% end %> /> <span class="label label-important">Private</span> Visible to users/groups specified below, if any.
70
70
  </label>
71
71
  </div><!-- /.controls -->
72
72
  </div><!-- /.control-group -->
data/lib/sufia.rb CHANGED
@@ -20,8 +20,6 @@ module Sufia
20
20
  #{config.root}/app/models/datastreams
21
21
  #{Hydra::Engine.root}/app/models/concerns
22
22
  )
23
- puts "concern #{Hydra::Engine.root}/app/models/concerns"
24
-
25
23
  end
26
24
 
27
25
  autoload :Controller
data/lib/sufia/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sufia
2
- VERSION = "3.4.0.rc1"
2
+ VERSION = "3.4.0.rc2"
3
3
  end
@@ -13,7 +13,7 @@ describe Sufia::GenericFile do
13
13
 
14
14
  it 'allows for overrides of visibility' do
15
15
  expect{
16
- MockParent.new(visibility: Sufia::Models::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE)
16
+ MockParent.new(visibility: Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE)
17
17
  }.to_not raise_error
18
18
  end
19
19
  end
@@ -6,6 +6,9 @@ module Sufia
6
6
  autoload :Permissions, 'sufia/models/generic_file/permissions'
7
7
  autoload :WebForm, 'sufia/models/generic_file/web_form'
8
8
  autoload :AccessibleAttributes, 'sufia/models/generic_file/accessible_attributes'
9
+ autoload :Trophies, 'sufia/models/generic_file/trophies'
10
+ autoload :Metadata, 'sufia/models/generic_file/metadata'
11
+ autoload :Versions, 'sufia/models/generic_file/versions'
9
12
  include Sufia::ModelMethods
10
13
  include Sufia::Noid
11
14
  include Sufia::GenericFile::MimeTypes
@@ -16,55 +19,18 @@ module Sufia
16
19
  include Sufia::GenericFile::Permissions
17
20
  include Sufia::GenericFile::WebForm
18
21
  include Sufia::GenericFile::Derivatives
22
+ include Sufia::GenericFile::Trophies
23
+ include Sufia::GenericFile::Metadata
24
+ include Sufia::GenericFile::Versions
19
25
 
20
26
  included do
21
- has_metadata :name => "descMetadata", :type => GenericFileRdfDatastream
22
- has_metadata :name => "properties", :type => PropertiesDatastream
23
- has_file_datastream :name => "content", :type => FileContentDatastream
24
- has_file_datastream :name => "thumbnail"
25
-
26
27
  belongs_to :batch, :property => :is_part_of
27
28
 
28
- delegate_to :properties, [:relative_path, :depositor, :import_url], multiple: false
29
- delegate_to :descMetadata, [:date_uploaded, :date_modified], multiple: false
30
- delegate_to :descMetadata, [:related_url, :based_near, :part_of, :creator,
31
- :contributor, :title, :tag, :description, :rights,
32
- :publisher, :date_created, :subject,
33
- :resource_type, :identifier, :language], multiple: true
34
-
35
29
  around_save :characterize_if_changed, :retry_warming
36
- before_destroy :cleanup_trophies
37
30
 
38
31
  attr_accessible *(ds_specs['descMetadata'][:type].fields + [:permissions])
39
32
  end
40
33
 
41
-
42
- def record_version_committer(user)
43
- version = content.latest_version
44
- # content datastream not (yet?) present
45
- return if version.nil?
46
- VersionCommitter.create(:obj_id => version.pid,
47
- :datastream_id => version.dsid,
48
- :version_id => version.versionID,
49
- :committer_login => user.user_key)
50
- end
51
-
52
- def pdf?
53
- self.class.pdf_mime_types.include? self.mime_type
54
- end
55
-
56
- def image?
57
- self.class.image_mime_types.include? self.mime_type
58
- end
59
-
60
- def video?
61
- self.class.video_mime_types.include? self.mime_type
62
- end
63
-
64
- def audio?
65
- self.class.audio_mime_types.include? self.mime_type
66
- end
67
-
68
34
  def persistent_url
69
35
  "#{Sufia.config.persistent_hostpath}#{noid}"
70
36
  end
@@ -100,10 +66,6 @@ module Sufia
100
66
  end
101
67
  end
102
68
 
103
- def cleanup_trophies
104
- Trophy.destroy_all(generic_file_id: self.noid)
105
- end
106
-
107
69
  def related_files
108
70
  relateds = begin
109
71
  self.batch.generic_files
@@ -130,13 +92,6 @@ module Sufia
130
92
  return solr_doc
131
93
  end
132
94
 
133
- def file_format
134
- return nil if self.mime_type.blank? and self.format_label.blank?
135
- return self.mime_type.split('/')[1]+ " ("+self.format_label.join(", ")+")" unless self.mime_type.blank? or self.format_label.blank?
136
- return self.mime_type.split('/')[1] unless self.mime_type.blank?
137
- return self.format_label
138
- end
139
-
140
95
  # Redefine this for more intuitive keys in Redis
141
96
  def to_param
142
97
  noid
@@ -0,0 +1,22 @@
1
+ module Sufia
2
+ module GenericFile
3
+ module Metadata
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ has_metadata "descMetadata", type: GenericFileRdfDatastream
8
+ has_metadata "properties", type: PropertiesDatastream
9
+ has_file_datastream "content", type: FileContentDatastream
10
+ has_file_datastream "thumbnail"
11
+
12
+
13
+ delegate_to :properties, [:relative_path, :depositor, :import_url], multiple: false
14
+ delegate_to :descMetadata, [:date_uploaded, :date_modified], multiple: false
15
+ delegate_to :descMetadata, [:related_url, :based_near, :part_of, :creator,
16
+ :contributor, :title, :tag, :description, :rights,
17
+ :publisher, :date_created, :subject,
18
+ :resource_type, :identifier, :language], multiple: true
19
+ end
20
+ end
21
+ end
22
+ end
@@ -3,6 +3,29 @@ module Sufia
3
3
  module MimeTypes
4
4
  extend ActiveSupport::Concern
5
5
 
6
+ def pdf?
7
+ self.class.pdf_mime_types.include? self.mime_type
8
+ end
9
+
10
+ def image?
11
+ self.class.image_mime_types.include? self.mime_type
12
+ end
13
+
14
+ def video?
15
+ self.class.video_mime_types.include? self.mime_type
16
+ end
17
+
18
+ def audio?
19
+ self.class.audio_mime_types.include? self.mime_type
20
+ end
21
+
22
+ def file_format
23
+ return nil if self.mime_type.blank? and self.format_label.blank?
24
+ return self.mime_type.split('/')[1]+ " ("+self.format_label.join(", ")+")" unless self.mime_type.blank? or self.format_label.blank?
25
+ return self.mime_type.split('/')[1] unless self.mime_type.blank?
26
+ return self.format_label
27
+ end
28
+
6
29
  module ClassMethods
7
30
  def image_mime_types
8
31
  ['image/png','image/jpeg', 'image/jpg', 'image/jp2', 'image/bmp', 'image/gif']
@@ -0,0 +1,15 @@
1
+ module Sufia
2
+ module GenericFile
3
+ module Trophies
4
+ extend ActiveSupport::Concern
5
+ included do
6
+ before_destroy :cleanup_trophies
7
+ end
8
+
9
+ def cleanup_trophies
10
+ Trophy.destroy_all(generic_file_id: self.noid)
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ module Sufia
2
+ module GenericFile
3
+ module Versions
4
+ def record_version_committer(user)
5
+ version = content.latest_version
6
+ # content datastream not (yet?) present
7
+ return if version.nil?
8
+ VersionCommitter.create(:obj_id => version.pid,
9
+ :datastream_id => version.dsid,
10
+ :version_id => version.versionID,
11
+ :committer_login => user.user_key)
12
+ end
13
+
14
+ end
15
+ end
16
+ end
@@ -1,5 +1,5 @@
1
1
  module Sufia
2
2
  module Models
3
- VERSION = "3.4.0.rc1"
3
+ VERSION = "3.4.0.rc2"
4
4
  end
5
5
  end
@@ -30,10 +30,10 @@ Gem::Specification.new do |spec|
30
30
  spec.add_dependency 'rails', '>= 3.2.13', '< 5.0'
31
31
  spec.add_dependency 'activeresource' # No longer a dependency of rails 4.0
32
32
 
33
- # spec.add_dependency "hydra", "6.1.0.rc1"
33
+ # spec.add_dependency "hydra", "6.1.0.rc2"
34
34
  # Since hydra 6.1 isn't out yet, we'll just build it so that it's compatible
35
35
  # without an explicit dependency
36
- spec.add_dependency "hydra-head", "~> 6.4.0.rc1"
36
+ spec.add_dependency "hydra-head", "~> 6.4.0.rc2"
37
37
  spec.add_dependency 'active-fedora', "~> 6.6.0.rc1"
38
38
 
39
39
  spec.add_dependency 'nest', '~> 1.1.1'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sufia
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.0.rc1
4
+ version: 3.4.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-01 00:00:00.000000000 Z
11
+ date: 2013-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sufia-models
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.4.0.rc1
19
+ version: 3.4.0.rc2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.4.0.rc1
26
+ version: 3.4.0.rc2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: blacklight_advanced_search
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -162,6 +162,7 @@ files:
162
162
  - Rakefile
163
163
  - Releasing_sufia.md
164
164
  - SUFIA_VERSION
165
+ - UpgradeGuide.md
165
166
  - app/assets/images/blacklight/bg.png
166
167
  - app/assets/images/blacklight/border.png
167
168
  - app/assets/images/blacklight/bul_sq_gry.gif
@@ -576,7 +577,6 @@ files:
576
577
  - spec/jobs/ingest_local_file_job_spec.rb
577
578
  - spec/lib/sufia/id_service_spec.rb
578
579
  - spec/lib/sufia/upload_complete_behavior_spec.rb
579
- - spec/models/access_right_spec.rb
580
580
  - spec/models/audit_job_spec.rb
581
581
  - spec/models/batch_spec.rb
582
582
  - spec/models/batch_update_job_spec.rb
@@ -614,8 +614,6 @@ files:
614
614
  - sufia-models/Rakefile
615
615
  - sufia-models/app/models/batch.rb
616
616
  - sufia-models/app/models/checksum_audit_log.rb
617
- - sufia-models/app/models/concerns/sufia/models/access_right.rb
618
- - sufia-models/app/models/concerns/sufia/models/with_access_right.rb
619
617
  - sufia-models/app/models/datastreams/batch_rdf_datastream.rb
620
618
  - sufia-models/app/models/datastreams/file_content_datastream.rb
621
619
  - sufia-models/app/models/datastreams/fits_datastream.rb
@@ -668,9 +666,12 @@ files:
668
666
  - sufia-models/lib/sufia/models/generic_file/characterization.rb
669
667
  - sufia-models/lib/sufia/models/generic_file/derivatives.rb
670
668
  - sufia-models/lib/sufia/models/generic_file/export.rb
669
+ - sufia-models/lib/sufia/models/generic_file/metadata.rb
671
670
  - sufia-models/lib/sufia/models/generic_file/mime_types.rb
672
671
  - sufia-models/lib/sufia/models/generic_file/permissions.rb
673
672
  - sufia-models/lib/sufia/models/generic_file/thumbnail.rb
673
+ - sufia-models/lib/sufia/models/generic_file/trophies.rb
674
+ - sufia-models/lib/sufia/models/generic_file/versions.rb
674
675
  - sufia-models/lib/sufia/models/generic_file/web_form.rb
675
676
  - sufia-models/lib/sufia/models/id_service.rb
676
677
  - sufia-models/lib/sufia/models/jobs/active_fedora_pid_based_job.rb
@@ -831,7 +832,6 @@ test_files:
831
832
  - spec/jobs/ingest_local_file_job_spec.rb
832
833
  - spec/lib/sufia/id_service_spec.rb
833
834
  - spec/lib/sufia/upload_complete_behavior_spec.rb
834
- - spec/models/access_right_spec.rb
835
835
  - spec/models/audit_job_spec.rb
836
836
  - spec/models/batch_spec.rb
837
837
  - spec/models/batch_update_job_spec.rb
@@ -1,57 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Sufia::Models::AccessRight do
4
- [
5
- [false, Sufia::Models::AccessRight::PERMISSION_TEXT_VALUE_PUBLIC, nil, nil, true, false, false, false],
6
- [false, Sufia::Models::AccessRight::PERMISSION_TEXT_VALUE_AUTHENTICATED, nil, nil, true, false, false, false],
7
- [false, nil, nil, nil, true, false, false, false],
8
- [false, nil, nil, 2.days.from_now, false, false, false, true],
9
- [false, nil, nil, 2.days.ago, false, false, false, true],
10
- [false, nil, Sufia::Models::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC, nil, true, false, false, false],
11
- [false, nil, Sufia::Models::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED, nil, false, true, false, false],
12
- [false, nil, Sufia::Models::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE, nil, false, false, true, false],
13
- [false, nil, Sufia::Models::AccessRight::VISIBILITY_TEXT_VALUE_EMBARGO, nil, false, false, false, true],
14
- [true, Sufia::Models::AccessRight::PERMISSION_TEXT_VALUE_PUBLIC, nil, nil, true, false, false, false],
15
- [true, Sufia::Models::AccessRight::PERMISSION_TEXT_VALUE_PUBLIC, nil, 2.days.from_now, false, false, false, true],
16
- [true, Sufia::Models::AccessRight::PERMISSION_TEXT_VALUE_PUBLIC, nil, 2.days.ago, false, false, false, true],
17
- [true, Sufia::Models::AccessRight::PERMISSION_TEXT_VALUE_AUTHENTICATED, nil, nil, false, true, false, false],
18
- [true, nil, nil, nil, false, false, true, false],
19
- [true, nil, Sufia::Models::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC, nil, true, false, false, false],
20
- [true, nil, Sufia::Models::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED, nil, false, true, false, false],
21
- [true, nil, Sufia::Models::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE, nil, false, false, true, false],
22
- [true, nil, Sufia::Models::AccessRight::VISIBILITY_TEXT_VALUE_EMBARGO, nil, false, false, false, true],
23
- ].each do |given_persisted, givin_permission, given_visibility, given_embargo_release_date, expected_open_access, expected_authentication_only, expected_private, expected_open_access_with_embargo_release_date|
24
- spec_text = <<-TEXT
25
-
26
- GIVEN: {
27
- persisted: #{given_persisted.inspect},
28
- permission: #{givin_permission.inspect},
29
- visibility: #{given_visibility.inspect},
30
- embargo_release_date: #{given_embargo_release_date}
31
- },
32
- EXPECTED: {
33
- open_access: #{expected_open_access.inspect},
34
- restricted: #{expected_authentication_only.inspect},
35
- private: #{expected_private.inspect},
36
- open_access_with_embargo_release_date: #{expected_open_access_with_embargo_release_date}
37
- },
38
- TEXT
39
-
40
- it spec_text do
41
- permissions = [{access: :edit, name: givin_permission}]
42
- permissionable = double(
43
- 'permissionable',
44
- permissions: permissions,
45
- visibility: given_visibility,
46
- persisted?: given_persisted,
47
- embargo_release_date: given_embargo_release_date
48
- )
49
- access_right = Sufia::Models::AccessRight.new(permissionable)
50
-
51
- expect(access_right.open_access?).to eq(expected_open_access)
52
- expect(access_right.authenticated_only?).to eq(expected_authentication_only)
53
- expect(access_right.private?).to eq(expected_private)
54
- expect(access_right.open_access_with_embargo_release_date?).to eq(expected_open_access_with_embargo_release_date)
55
- end
56
- end
57
- end
@@ -1,79 +0,0 @@
1
- module Sufia
2
- module Models
3
- class AccessRight
4
- PERMISSION_TEXT_VALUE_PUBLIC = 'public'.freeze
5
- PERMISSION_TEXT_VALUE_AUTHENTICATED = 'registered'.freeze
6
- VISIBILITY_TEXT_VALUE_PUBLIC = 'open'.freeze
7
- VISIBILITY_TEXT_VALUE_EMBARGO = 'open_with_embargo_release_date'.freeze
8
- VISIBILITY_TEXT_VALUE_AUTHENTICATED = 'psu'.freeze
9
- VISIBILITY_TEXT_VALUE_PRIVATE = 'restricted'.freeze
10
-
11
- # @param permissionable [#visibility, #permissions]
12
- # @example
13
- # file = GenericFile.find('sufia:1234')
14
- # access = Sufia::AccessRight.new(file)
15
- def initialize(permissionable)
16
- @permissionable = permissionable
17
- end
18
-
19
- attr_reader :permissionable
20
- delegate :persisted?, :permissions, :visibility, to: :permissionable
21
- protected :persisted?, :permissions, :visibility
22
-
23
-
24
- def open_access?
25
- return true if has_visibility_text_for?(VISIBILITY_TEXT_VALUE_PUBLIC)
26
- # We don't want to know if its under embargo, simply does it have a date.
27
- # In this way, we can properly inform the label input
28
- persisted_open_access_permission? && !permissionable.embargo_release_date.present?
29
- end
30
-
31
- def open_access_with_embargo_release_date?
32
- return false unless permissionable_is_embargoable?
33
- return true if has_visibility_text_for?(VISIBILITY_TEXT_VALUE_EMBARGO)
34
- # We don't want to know if its under embargo, simply does it have a date.
35
- # In this way, we can properly inform the label input
36
- persisted_open_access_permission? && permissionable.embargo_release_date.present?
37
- end
38
-
39
- def authenticated_only?
40
- return false if open_access?
41
- has_permission_text_for?(PERMISSION_TEXT_VALUE_AUTHENTICATED) ||
42
- has_visibility_text_for?(VISIBILITY_TEXT_VALUE_AUTHENTICATED)
43
- end
44
-
45
- def private?
46
- return false if open_access?
47
- return false if authenticated_only?
48
- return false if open_access_with_embargo_release_date?
49
- true
50
- end
51
-
52
- private
53
-
54
- def persisted_open_access_permission?
55
- if persisted?
56
- has_permission_text_for?(PERMISSION_TEXT_VALUE_PUBLIC)
57
- else
58
- visibility.to_s == ''
59
- end
60
- end
61
-
62
- def on_or_after_any_embargo_release_date?
63
- return true unless permissionable.embargo_release_date
64
- permissionable.embargo_release_date.to_date < Date.today
65
- end
66
-
67
- def permissionable_is_embargoable?
68
- permissionable.respond_to?(:embargo_release_date)
69
- end
70
-
71
- def has_visibility_text_for?(text)
72
- visibility == text
73
- end
74
- def has_permission_text_for?(text)
75
- !!permissions.detect { |perm| perm[:name] == text }
76
- end
77
- end
78
- end
79
- end
@@ -1,33 +0,0 @@
1
- module Sufia
2
- module Models
3
- module WithAccessRight
4
- extend ActiveSupport::Concern
5
-
6
- def under_embargo?
7
- @under_embargo ||= rightsMetadata.under_embargo?
8
- end
9
-
10
- def open_access?
11
- access_rights.open_access?
12
- end
13
-
14
- def open_access_with_embargo_release_date?
15
- access_rights.open_access_with_embargo_release_date?
16
- end
17
-
18
- def authenticated_only_access?
19
- access_rights.authenticated_only?
20
- end
21
-
22
- def private_access?
23
- access_rights.private?
24
- end
25
-
26
- def access_rights
27
- @access_rights ||= AccessRight.new(self)
28
- end
29
- protected :access_rights
30
-
31
- end
32
- end
33
- end