dor-rights-auth 1.3.0 → 1.4.0

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/dor/rights_auth.rb +26 -1
  3. metadata +3 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f11af5041a20deb4cbbfb44ffc3a62683f4b1b1f
4
- data.tar.gz: ebb61768470adb0888c612c13947e58125ca478a
3
+ metadata.gz: 155c15e0037ba6d647c2926ab7d83c01eb28902e
4
+ data.tar.gz: b3ea1d4f93bf56722f103d88f11dddd20b05cc77
5
5
  SHA512:
6
- metadata.gz: 92a28e6e5f84bb81a71b69b8ff36c0cf7c661458260f7ec129ce5f1448eb19f5d91c5a17945b32ec609c30840ce33566e617e6718f2f19c5854cd33d3db54ddd
7
- data.tar.gz: 31557219e0eda1041b8fe34ebc4e4fc52b8615c037c36af43d2939ba5453b6cef28b844dc2dc9561d90ee2eefce4a2bfb431f2dc54dc9d2c573e2cf7d14c59c6
6
+ metadata.gz: 758a25ecd5845ec8e39d6bb23359c200d92f5ee77f6c37556afad96b63aa130b172b892abe6bc6b51479d4f90548f8470c6432004585c1ba9e3b5eab14690f18
7
+ data.tar.gz: 3d0f06f1fd0e34302c8a1010e3f7f4bff3e07750298421d0eafa3ffaf843c1c1cac391d48cee3a0ec560482a6eca2e41d1b0be354c46175baa5766b3ae8dcd6e
@@ -49,6 +49,31 @@ module Dor
49
49
  @embargoed
50
50
  end
51
51
 
52
+ # summary level rights info is mostly used for object-level indexing/faceting.
53
+ # thus, we currently only calculate it when parsing object rights for indexing.
54
+ # to keep from having to refactor or duplicate code right now, we'll just leverage
55
+ # what we've got, checking whether index_elements is populated, and raising an error
56
+ # if the object wasn't instantiated in a way that makes those calculations.
57
+ def check_index_elements_calculated!
58
+ unless index_elements.size > 0
59
+ raise "primary access rights not calculated. instantiate by calling '.parse(xml, forindex = true)'."
60
+ end
61
+ end
62
+
63
+ # this is just a convenience method for asking whether an object's rights would
64
+ # classify it as 'dark'.
65
+ def dark?
66
+ check_index_elements_calculated!
67
+ index_elements[:primary] == 'dark'
68
+ end
69
+
70
+ # this is just a convenience method for asking whether an object's rights would
71
+ # classify it as 'citation only'.
72
+ def citation_only?
73
+ check_index_elements_calculated!
74
+ index_elements[:primary] == 'citation'
75
+ end
76
+
52
77
  # Returns true if the object is world readable AND has no rule attribute
53
78
  # @return [Boolean]
54
79
  def world_unrestricted?
@@ -277,7 +302,7 @@ module Dor
277
302
  def self.extract_index_terms(doc)
278
303
  terms = []
279
304
  machine = doc.at_xpath("//rightsMetadata/access[@type='read' and not(file)]/machine")
280
- terms.push 'none_discover' if doc.at_xpath("//rightsMetadata/access[@type='discover']/machine/none")
305
+ terms.push 'none_discover' if doc.at_xpath("//rightsMetadata/access[@type='discover']/machine/none") || doc.at_xpath("//rightsMetadata/access[@type='discover']/machine[not(*)]")
281
306
  terms.push 'world_discover' if doc.at_xpath("//rightsMetadata/access[@type='discover']/machine/world[not(@rule)]")
282
307
  return terms if machine.nil?
283
308
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dor-rights-auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Willy Mene
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-11-01 00:00:00.000000000 Z
12
+ date: 2019-08-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -130,9 +130,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
130
  version: 1.3.6
131
131
  requirements: []
132
132
  rubyforge_project:
133
- rubygems_version: 2.4.5.1
133
+ rubygems_version: 2.6.13
134
134
  signing_key:
135
135
  specification_version: 4
136
136
  summary: Parses rightsMetadata xml into a useable object
137
137
  test_files: []
138
- has_rdoc: