dor-services 5.29.0 → 5.30.0

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
  SHA1:
3
- metadata.gz: a6c61cecf3d248803eae00ed5d38ff6777274637
4
- data.tar.gz: a54d41fcd06b9e1ddfa27901d1b60a255b687eb3
3
+ metadata.gz: 89a45fc0d4d2b861d2a63f35501cab481ac19886
4
+ data.tar.gz: 4a2814c6b8dbabb5b8d9e08ff99f3a7e13ae2498
5
5
  SHA512:
6
- metadata.gz: 73c5d62258abc20a79bc4bf1fe4eedbaa1ea6e089171ef9d62a80fd5de792d8f2e188c8fefcb3dafacc550cd40617d1fd4fefe091a5bfa857b06dca83756501c
7
- data.tar.gz: bafc0afb99e3ef8186bcd6613421fd9bf48aa22c8ef1e5a57203215f0d2950cfa69d356b070331e1f2a21788d2e36bf1bf0d7c8475af726b002dab1bfe6094c8
6
+ metadata.gz: a47c637d3a5f2b02b36385e9bf9f632b15fe1f36c498fe2c73d84ec904c973deafca8738b7c3df77c8ede4156cb73b486d5704906b5ea563ac2ae55cb3798941
7
+ data.tar.gz: 542ff047ac905c08258ab5c5ce676cbdc68ff9b7e7113ec8c15d7f8e3f9183199a2a5773094e8a5cdb923aaf5b86a0b0adeb6a3ab85c98da5d59456b924caea0
@@ -0,0 +1,29 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIE9zCCAt8CCQCcUJVDTu7rTjANBgkqhkiG9w0BAQUFADCBvzELMAkGA1UEBhMC
3
+ VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExETAPBgNVBAcTCFN0YW5mb3JkMRwwGgYD
4
+ VQQKExNTdGFuZm9yZCBVbml2ZXJzaXR5MRIwEAYDVQQLEwlMaWJyYXJpZXMxJTAj
5
+ BgNVBAMTHFNVTCBET1IgKGRldi90ZXN0KSBhY2Nlc3MgQ0ExLzAtBgkqhkiG9w0B
6
+ CQEWIHN1bC13ZWJtYXN0ZXJAbGlzdHMuc3RhbmZvcmQuZWR1MB4XDTEyMDkyNjE1
7
+ NTQzNVoXDTIyMDkyNDE1NTQzNVowgboxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpD
8
+ YWxpZm9ybmlhMREwDwYDVQQHEwhTdGFuZm9yZDEcMBoGA1UEChMTU3RhbmZvcmQg
9
+ VW5pdmVyc2l0eTEyMDAGA1UEAxQpcm9ib3RzQHN1bC1seWJlcnNlcnZpY2VzLWRl
10
+ di5zdGFuZm9yZC5lZHUxMTAvBgkqhkiG9w0BCQEWImRsc3MtZGV2ZWxvcGVyc0Bs
11
+ aXN0cy5zdGFuZm9yZC5lZHUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
12
+ AQC1t+PPhLTDFQBuAf4f1GOj7jHdXMN0tvSHL1OCaibe0d8iKbXCMMIE0z8lbBpZ
13
+ 1pA+8terIvxoTlly92EEvGkywZb+DIxnjyG0b9ftDJ64pARJMcnvwJMW/w3WdHCd
14
+ 5uJ5HVM8ZCbEItUfskFukS6tfNBpG8ri6cIQ2ulJzOWYxPV5R2eRneM6vtFD0xtu
15
+ RJb/uMwiOwB79qk4QazbEQtkeZsrvomDFkIuHO/nf9wmgYG99H7q1kXplIrzDDX+
16
+ fvD+JHvuMr5YXfmBQ9wmaZf6YIL7CXj79HUF4uG/a0SjrLZyLh262zWJQFVpjSW8
17
+ Brl/fAyjeZvWJMyCDXRqsedjAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAG0jIfTj
18
+ 1FJsxTzcD938vtKuNo5XEIX8phqW1MA2eJ5Ojgu1hpW5Jf7fmUHKVnamm7eya5QR
19
+ 356KCJzZzwdCS4xVFq/l43gCA2j8TYrwO6/0EfM/5psUZS3ecwahzcJXfHPHvd9u
20
+ qaXRqbjJYi+Ls70uStTC/JBIIu48atDF0DeXJ21hAbstZ1OKKNzAcYgZk14GKxCi
21
+ ArgAzdg8UDtC4KsdqgxP6vF8Vc/gcHSu9AkVHgPVXbITjV0/kaKNgFi0bVqP7bJD
22
+ hrUFYrS+S+hflQJCmVrDwW0JU2HnJ3EJOFX5F4FYHL4vt6ZjVsMzucraMqiLyUaO
23
+ s6DVaWO8WMlphmFUfb3ChQjrKxFZZ6vKJPD/ExnQHa0kWwOELyMJuXw2PLk7k+qD
24
+ rmjX+K3Ed+JiJuiDG5k8f1BDZE24lvxDwye5fQyDWPfib1yTClYYy4PRh4AI688f
25
+ qgMyv51Qx82o0IJ1On1rNg5/iB7OEVcYSol3U5xiY9gRUd3vq637agZzMuRQnKXs
26
+ Uj0+Vl4OrZ54F8MVsUKfi7Je1oVUEhuHqFt/tSOGlHg1XyR/ExwulCNBKIVdhhrF
27
+ rxZCYrGDSUCF6tteJXpOBTtFT9b7hbMmBohKyS4XjfPSPRh9QHx7wepqSp3aHpmR
28
+ 4gY8Go40mS83xHCKBooqsy2/Z9vQlSb9Cr8u
29
+ -----END CERTIFICATE-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEpQIBAAKCAQEAtbfjz4S0wxUAbgH+H9Rjo+4x3VzDdLb0hy9Tgmom3tHfIim1
3
+ wjDCBNM/JWwaWdaQPvLXqyL8aE5ZcvdhBLxpMsGW/gyMZ48htG/X7QyeuKQESTHJ
4
+ 78CTFv8N1nRwnebieR1TPGQmxCLVH7JBbpEurXzQaRvK4unCENrpSczlmMT1eUdn
5
+ kZ3jOr7RQ9MbbkSW/7jMIjsAe/apOEGs2xELZHmbK76JgxZCLhzv53/cJoGBvfR+
6
+ 6tZF6ZSK8ww1/n7w/iR77jK+WF35gUPcJmmX+mCC+wl4+/R1BeLhv2tEo6y2ci4d
7
+ uts1iUBVaY0lvAa5f3wMo3mb1iTMgg10arHnYwIDAQABAoIBAQCmlDzsZZ2C24S6
8
+ U29OZFc21kq1vqyaGIEOT48BFSguyDsAyTWKH0IsRC41suRxCGTQn7KeegLh5zjO
9
+ UAGK4uCYm6g7mOs4n5fpHUHWVuRFJG2dX1vbQTBVO1fHCJSX2ygumHhN+w0ibT/r
10
+ v2+F2ObuOGWghM62tkylQNfsRD0QjalE8ST2xp9p4xwPrAwEuURlA04qnLYNi4+6
11
+ qexDtrLG8E6JV/dd3dY95WjKPscadR1fAKm9sebD0XO31Lu6BGCvpmBU0OmYVfrY
12
+ BN/ofhEmJh+Xgwfxx6PicRDvu9bPnffqbGhDO4ckGDlqXp1fDBgf1I7CclXdrVMH
13
+ Qsxunh5pAoGBAN7929V1aw0S7Rqvuf4N+o1XwBExa2DL7EYI1Oea/nuBMPqvfeNh
14
+ SrbM0gYejEzLmeRUUKRhMMoAgXQnxcg3Kz/5pUXT3b4YtzeskX8nkJ6/2gEU3M7E
15
+ lJj7c5wW1otqMH19+iDNR4N8vjPh98kDJW1HZUHSAcdyE+dZiFP2ofMfAoGBANCe
16
+ AJgA9EkdwZsom+I7Ty9LSrTWx6cKmNEbLVn1iSlyJx1kHoWyTMtuZszCWBjiXx70
17
+ 84WpX2B4MuJBq6sSoEiUahNsphks82glOd6i+eoE/I+NtZehOFnkAMyGux+FbMyG
18
+ q/9ZlQgsbWpFHxS59vX/kvlNun2RpJkaF6QPBuc9AoGBAIGdscCb5cPNsoCGkGf6
19
+ HB84WG4l+bJkFkyHKaoOT8neSGgOxe/7R4CGAbaI3yhsWGF+GPnTfJaOQLERxUch
20
+ ukQPil/STNwIZcc4ycHNb6S3A7MJO2f8oBtkXcjnBYI4EUOAjHmwmNb3FV/3Ax6W
21
+ c5TXoSXnOh2CU8twIWwcufolAoGATqnFf4uckZVu05rUbNIAYcz6NoZmck5EoVSm
22
+ HS3Asqggp6yA9djtrCfNC5icr4VsaLfku5nKJQ4t4bLxkGhNmBCejwSA/S09+x9O
23
+ Wu0JX3zR3y+IMczQ+tRGmNiU5qXhCJ4fbQHSeGqIN3Io7h/RR6E/QlJU59RrRG/a
24
+ SjqAV+ECgYEA2mA5VFK3jECnLde+biEaXidIOuBMcqaP0VG6sBwz2wTGSTBE1WkG
25
+ 6prCD0McWVAgDTm3MMKxeuMaoW5eEi83+G+CywLaTBpc8Hz7qgRhBpKhRirCfHMW
26
+ EfQV5k32vEGoSI+eG8zcGb9mwDeb/EWXAMGXrx2YuYFu7txtwC2mZXc=
27
+ -----END RSA PRIVATE KEY-----
@@ -16,6 +16,8 @@
16
16
  :metadata:
17
17
  :catalog:
18
18
  :url:
19
+ :user:
20
+ :pass:
19
21
  :sdr:
20
22
  :local_workspace_root: /dor/workspace
21
23
  :local_export_home: /dor/export
@@ -0,0 +1,80 @@
1
+ cert_dir = File.join(File.dirname(__FILE__), "..", "certs")
2
+
3
+ Dor::Config.configure do
4
+ fedora do
5
+ url 'https://sul-dor-dev.stanford.edu/fedora'
6
+ end
7
+
8
+ ssl do
9
+ cert_file File.join(cert_dir,"robots-dor-dev.crt")
10
+ key_file File.join(cert_dir,"robots-dor-dev.key")
11
+ key_pass ''
12
+ end
13
+
14
+ suri do
15
+ mint_ids true
16
+ id_namespace 'druid'
17
+ url 'https://lyberservices-dev.stanford.edu'
18
+ user 'labware'
19
+ pass 'lyberteam'
20
+ end
21
+
22
+ metadata do
23
+ exist.url 'http://viewer:l3l%40nd@lyberapps-dev.stanford.edu/exist/rest/'
24
+ catalog.url 'http://lyberservices-prod.stanford.edu/catalog/mods'
25
+ end
26
+
27
+ stacks do
28
+ document_cache_host 'purl-dev.stanford.edu'
29
+ local_stacks_root '/stacks'
30
+ local_document_cache_root '/purl/document_cache'
31
+ local_workspace_root '/dor/workspace'
32
+ end
33
+
34
+ solrizer.url 'http://sul-solr.stanford.edu/solr/argo_test'
35
+ workflow.url 'https://lyberservices-dev.stanford.edu/workflow/'
36
+ dor_services.url 'https://dorAdmin:dorAdmin@sul-lyberservices-dev.stanford.edu/dor'
37
+
38
+ cleanup do
39
+ local_workspace_root '/dor/workspace'
40
+ local_export_home '/dor/export'
41
+ end
42
+
43
+ sdr do
44
+ url 'https://sdrAdmin:sdrAdmin@sdr-services-test.stanford.edu/sdr/'
45
+ local_workspace_root '/dor/workspace'
46
+ local_export_home '/dor/export'
47
+ datastreams do
48
+ administrativeMetadata 'optional'
49
+ contentMetadata 'optional'
50
+ descMetadata 'required'
51
+ defaultObjectRights 'optional'
52
+ events 'optional'
53
+ embargoMetadata 'optional'
54
+ identityMetadata 'required'
55
+ provenanceMetadata 'required'
56
+ relationshipMetadata 'required'
57
+ rightsMetadata 'optional'
58
+ roleMetadata 'optional'
59
+ sourceMetadata 'optional'
60
+ technicalMetadata 'optional'
61
+ versionMetadata 'required'
62
+ workflows 'optional'
63
+ end
64
+ end
65
+
66
+ accessioning_robot_sleep_time 30
67
+
68
+ end
69
+
70
+
71
+ #WORKFLOW_URI = 'http://lyberservices-test.stanford.edu/workflow'
72
+
73
+ # Constants for Dor::WorkflowService
74
+ #module Dor
75
+ # CREATE_WORKFLOW = DOR_CREATE_WORKFLOW = true
76
+ # WF_URI = 'http://lyberservices-test.stanford.edu/workflow'
77
+ #end
78
+
79
+ # External application locations
80
+ JHOVE_HOME = File.join(ENV['HOME'], 'jhoveToolkit')
@@ -82,75 +82,84 @@ module Dor
82
82
  require 'druid-tools'
83
83
 
84
84
  # datastreams
85
- autoload :AdministrativeMetadataDS, 'dor/datastreams/administrative_metadata_ds'
86
- autoload :ContentMetadataDS, 'dor/datastreams/content_metadata_ds'
87
- autoload :DescMetadataDS, 'dor/datastreams/desc_metadata_ds'
88
- autoload :EmbargoMetadataDS, 'dor/datastreams/embargo_metadata_ds'
89
- autoload :EventsDS, 'dor/datastreams/events_ds'
90
- autoload :GeoMetadataDS, 'dor/datastreams/geo_metadata_ds'
91
- autoload :IdentityMetadataDS, 'dor/datastreams/identity_metadata_ds'
92
- autoload :RightsMetadataDS, 'dor/datastreams/rights_metadata_ds'
93
- autoload :RoleMetadataDS, 'dor/datastreams/role_metadata_ds'
94
- autoload :WorkflowDefinitionDs, 'dor/datastreams/workflow_definition_ds'
95
- autoload :WorkflowDs, 'dor/datastreams/workflow_ds'
96
- autoload :VersionMetadataDS, 'dor/datastreams/version_metadata_ds'
97
- autoload :DefaultObjectRightsDS, 'dor/datastreams/default_object_rights_ds'
98
- autoload :SimpleDublinCoreDs, 'dor/datastreams/simple_dublin_core_ds'
85
+ autoload_under 'datastreams' do
86
+ autoload :AdministrativeMetadataDS
87
+ autoload :ContentMetadataDS
88
+ autoload :DescMetadataDS
89
+ autoload :EmbargoMetadataDS
90
+ autoload :EventsDS
91
+ autoload :GeoMetadataDS
92
+ autoload :IdentityMetadataDS
93
+ autoload :RightsMetadataDS
94
+ autoload :RoleMetadataDS
95
+ autoload :WorkflowDefinitionDs
96
+ autoload :WorkflowDs
97
+ autoload :VersionMetadataDS
98
+ autoload :DefaultObjectRightsDS
99
+ autoload :SimpleDublinCoreDs
100
+ end
99
101
 
100
102
  # DOR Concerns
101
- autoload :Identifiable, 'dor/models/concerns/identifiable'
102
- autoload :Itemizable, 'dor/models/concerns/itemizable'
103
- autoload :Processable, 'dor/models/concerns/processable'
104
- autoload :Governable, 'dor/models/concerns/governable'
105
- autoload :Describable, 'dor/models/concerns/describable'
106
- autoload :Publishable, 'dor/models/concerns/publishable'
107
- autoload :Shelvable, 'dor/models/concerns/shelvable'
108
- autoload :Embargoable, 'dor/models/concerns/embargoable'
109
- autoload :Preservable, 'dor/models/concerns/preservable'
110
- autoload :Assembleable, 'dor/models/concerns/assembleable'
111
- autoload :Eventable, 'dor/models/concerns/eventable'
112
- autoload :Versionable, 'dor/models/concerns/versionable'
113
- autoload :Contentable, 'dor/models/concerns/contentable'
114
- autoload :Editable, 'dor/models/concerns/editable'
115
- autoload :Discoverable, 'dor/models/concerns/discoverable'
116
- autoload :Geoable, 'dor/models/concerns/geoable'
117
- autoload :Releaseable, 'dor/models/concerns/releaseable'
118
- autoload :Rightsable, 'dor/models/concerns/rightsable'
103
+ autoload_under 'models/concerns' do
104
+ autoload :Identifiable
105
+ autoload :Itemizable
106
+ autoload :Processable
107
+ autoload :Governable
108
+ autoload :Describable
109
+ autoload :Publishable
110
+ autoload :Shelvable
111
+ autoload :Embargoable
112
+ autoload :Preservable
113
+ autoload :Assembleable
114
+ autoload :Eventable
115
+ autoload :Versionable
116
+ autoload :Contentable
117
+ autoload :Editable
118
+ autoload :Discoverable
119
+ autoload :Geoable
120
+ autoload :Releaseable
121
+ autoload :Rightsable
122
+ end
119
123
 
120
124
  eager_autoload do
121
125
  # ActiveFedora Classes
122
- autoload :Abstract, 'dor/models/abstract'
123
- autoload :Agreement, 'dor/models/agreement'
124
- autoload :Item, 'dor/models/item'
125
- autoload :Set, 'dor/models/set'
126
- autoload :Collection, 'dor/models/collection'
127
- autoload :AdminPolicyObject, 'dor/models/admin_policy_object'
128
- autoload :WorkflowObject, 'dor/models/workflow_object'
126
+ autoload_under 'models' do
127
+ autoload :Abstract
128
+ autoload :Agreement
129
+ autoload :Item
130
+ autoload :Set
131
+ autoload :Collection
132
+ autoload :AdminPolicyObject
133
+ autoload :WorkflowObject
134
+ end
129
135
  end
130
136
 
131
137
  # Services
132
- autoload :SearchService, 'dor/services/search_service'
133
- autoload :IndexingService, 'dor/services/indexing_service'
134
- autoload :MetadataService, 'dor/services/metadata_service'
135
- autoload :RegistrationService, 'dor/services/registration_service'
136
- autoload :SuriService, 'dor/services/suri_service'
137
- autoload :WorkflowService, 'dor/services/workflow_service'
138
- autoload :DigitalStacksService, 'dor/services/digital_stacks_service'
139
- autoload :SdrIngestService, 'dor/services/sdr_ingest_service'
140
- autoload :CleanupService, 'dor/services/cleanup_service'
141
- autoload :ProvenanceMetadataService, 'dor/services/provenance_metadata_service'
142
- autoload :TechnicalMetadataService, 'dor/services/technical_metadata_service'
143
- autoload :MergeService, 'dor/services/merge_service'
144
- autoload :ResetWorkspaceService, 'dor/services/reset_workspace_service'
145
- autoload :CleanupResetService, 'dor/services/cleanup_reset_service'
146
- autoload :PublicDescMetadataService, 'dor/services/public_desc_metadata_service'
147
- autoload :PublicXmlService, 'dor/services/public_xml_service'
138
+ autoload_under 'services' do
139
+ autoload :SearchService
140
+ autoload :IndexingService
141
+ autoload :MetadataService
142
+ autoload :RegistrationService
143
+ autoload :SuriService
144
+ autoload :WorkflowService
145
+ autoload :DigitalStacksService
146
+ autoload :SdrIngestService
147
+ autoload :CleanupService
148
+ autoload :ProvenanceMetadataService
149
+ autoload :TechnicalMetadataService
150
+ autoload :MergeService
151
+ autoload :ResetWorkspaceService
152
+ autoload :CleanupResetService
153
+ autoload :PublicDescMetadataService
154
+ autoload :PublicXmlService
155
+ end
148
156
 
149
157
  # Workflow Classes
150
158
  module Workflow
151
- autoload :Graph, 'dor/workflow/graph'
152
- autoload :Process, 'dor/workflow/process'
153
- autoload :Document, 'dor/workflow/document'
159
+ extend ActiveSupport::Autoload
160
+ autoload :Graph
161
+ autoload :Process
162
+ autoload :Document
154
163
  end
155
164
 
156
165
  eager_load!
@@ -93,6 +93,7 @@ module Dor
93
93
  def mods_title
94
94
  descMetadata.term_values(:title_info, :main_title).first
95
95
  end
96
+
96
97
  def mods_title=(val)
97
98
  descMetadata.update_values({[:title_info, :main_title] => val})
98
99
  end
@@ -102,6 +103,7 @@ module Dor
102
103
  def default_collections
103
104
  administrativeMetadata.term_values(:registration, :default_collection)
104
105
  end
106
+
105
107
  # Add a collection to the listing of collections for items governed by this apo.
106
108
  # @param val [String] pid of the collection, ex. druid:ab123cd4567
107
109
  def add_default_collection(val)
@@ -116,6 +118,7 @@ module Dor
116
118
  node['id'] = val
117
119
  reg.add_child(node)
118
120
  end
121
+
119
122
  def remove_default_collection(val)
120
123
  xml = administrativeMetadata.ng_xml
121
124
  administrativeMetadata.ng_xml_will_change!
@@ -138,6 +141,7 @@ module Dor
138
141
  def metadata_source
139
142
  administrativeMetadata.metadata_source.first
140
143
  end
144
+
141
145
  def metadata_source=(val)
142
146
  if administrativeMetadata.descMetadata.nil?
143
147
  administrativeMetadata.ng_xml_will_change!
@@ -149,6 +153,7 @@ module Dor
149
153
  def use_statement
150
154
  defaultObjectRights.use_statement.first
151
155
  end
156
+
152
157
  def use_statement=(val)
153
158
  defaultObjectRights.update_term!(:use_statement, val.nil? ? '' : val)
154
159
  end
@@ -156,6 +161,7 @@ module Dor
156
161
  def copyright_statement
157
162
  defaultObjectRights.copyright.first
158
163
  end
164
+
159
165
  def copyright_statement=(val)
160
166
  defaultObjectRights.update_term!(:copyright, val.nil? ? '' : val)
161
167
  end
@@ -163,6 +169,7 @@ module Dor
163
169
  def creative_commons_license
164
170
  defaultObjectRights.creative_commons.first
165
171
  end
172
+
166
173
  def creative_commons_license_human
167
174
  defaultObjectRights.creative_commons_human.first
168
175
  end
@@ -170,6 +177,7 @@ module Dor
170
177
  def open_data_commons_license
171
178
  defaultObjectRights.open_data_commons.first
172
179
  end
180
+
173
181
  def open_data_commons_license_human
174
182
  defaultObjectRights.open_data_commons_human.first
175
183
  end
@@ -179,11 +187,13 @@ module Dor
179
187
  return open_data_commons_license unless open_data_commons_license.blank?
180
188
  nil
181
189
  end
190
+
182
191
  def use_license_uri
183
192
  return defaultObjectRights.creative_commons.uri.first unless defaultObjectRights.creative_commons.uri.blank?
184
193
  return defaultObjectRights.open_data_commons.uri.first unless defaultObjectRights.open_data_commons.uri.blank?
185
194
  nil
186
195
  end
196
+
187
197
  def use_license_human
188
198
  return creative_commons_license_human unless creative_commons_license_human.blank?
189
199
  return open_data_commons_license_human unless open_data_commons_license_human.blank?
@@ -195,6 +205,7 @@ module Dor
195
205
  defaultObjectRights.creative_commons = use_license_machine
196
206
  defaultObjectRights.creative_commons.uri = CREATIVE_COMMONS_USE_LICENSES[use_license_machine][:uri]
197
207
  end
208
+
198
209
  def creative_commons_license_human=(use_license_human)
199
210
  defaultObjectRights.initialize_term!(:creative_commons_human)
200
211
  defaultObjectRights.creative_commons_human = use_license_human
@@ -205,6 +216,7 @@ module Dor
205
216
  defaultObjectRights.open_data_commons = use_license_machine
206
217
  defaultObjectRights.open_data_commons.uri = OPEN_DATA_COMMONS_USE_LICENSES[use_license_machine][:uri]
207
218
  end
219
+
208
220
  def open_data_commons_license_human=(use_license_human)
209
221
  defaultObjectRights.initialize_term!(:open_data_commons_human)
210
222
  defaultObjectRights.open_data_commons_human = use_license_human
@@ -287,6 +299,7 @@ module Dor
287
299
  def desc_metadata_format
288
300
  administrativeMetadata.metadata_format.first
289
301
  end
302
+
290
303
  def desc_metadata_format=(format)
291
304
  # create the node if it isnt there already
292
305
  unless administrativeMetadata.metadata_format.first
@@ -299,6 +312,7 @@ module Dor
299
312
  def desc_metadata_source
300
313
  administrativeMetadata.metadata_source.first
301
314
  end
315
+
302
316
  def desc_metadata_source=(source)
303
317
  # create the node if it isnt there already
304
318
  unless administrativeMetadata.metadata_source.first
@@ -313,6 +327,7 @@ module Dor
313
327
  def default_workflows
314
328
  administrativeMetadata.term_values(:registration, :workflow_id)
315
329
  end
330
+
316
331
  # set a single default workflow
317
332
  # @param wf [String] the name of the workflow, ex. 'digitizationWF'
318
333
  def default_workflow=(wf)
@@ -338,6 +353,7 @@ module Dor
338
353
  def agreement
339
354
  agreement_object ? agreement_object.pid : ''
340
355
  end
356
+
341
357
  def agreement=(val)
342
358
  fail ArgumentError, 'agreement must have a valid druid' if val.blank?
343
359
  self.agreement_object = Dor.find val.to_s, :cast => true
@@ -72,10 +72,12 @@ module Dor
72
72
  collections.delete(collection)
73
73
  sets.delete(collection)
74
74
  end
75
+
75
76
  # set the rights metadata datastream to the content of the APO's default object rights
76
77
  def reapplyAdminPolicyObjectDefaults
77
78
  rightsMetadata.content = admin_policy_object.datastreams['defaultObjectRights'].content
78
79
  end
80
+
79
81
  def rights
80
82
  return nil unless self.respond_to? :rightsMetadata
81
83
  return nil if rightsMetadata.nil?
@@ -91,54 +93,71 @@ module Dor
91
93
  'None'
92
94
  end
93
95
  end
96
+
94
97
  def groups_which_manage_item
95
98
  ['dor-administrator', 'sdr-administrator', 'dor-apo-manager', 'dor-apo-depositor']
96
99
  end
100
+
97
101
  def groups_which_manage_desc_metadata
98
102
  ['dor-administrator', 'sdr-administrator', 'dor-apo-manager', 'dor-apo-depositor', 'dor-apo-metadata']
99
103
  end
104
+
100
105
  def groups_which_manage_system_metadata
101
106
  ['dor-administrator', 'sdr-administrator', 'dor-apo-manager', 'dor-apo-depositor']
102
107
  end
108
+
103
109
  def groups_which_manage_content
104
110
  ['dor-administrator', 'sdr-administrator', 'dor-apo-manager', 'dor-apo-depositor']
105
111
  end
112
+
106
113
  def groups_which_manage_rights
107
114
  ['dor-administrator', 'sdr-administrator', 'dor-apo-manager', 'dor-apo-depositor']
108
115
  end
116
+
109
117
  def groups_which_manage_embargo
110
118
  ['dor-administrator', 'sdr-administrator', 'dor-apo-manager', 'dor-apo-depositor']
111
119
  end
120
+
112
121
  def groups_which_view_content
113
122
  ['dor-administrator', 'sdr-administrator', 'dor-apo-manager', 'dor-apo-depositor', 'dor-viewer', 'sdr-viewer']
114
123
  end
124
+
115
125
  def groups_which_view_metadata
116
126
  ['dor-administrator', 'sdr-administrator', 'dor-apo-manager', 'dor-apo-depositor', 'dor-viewer', 'sdr-viewer']
117
127
  end
128
+
118
129
  def intersect(arr1, arr2)
119
130
  (arr1 & arr2).length > 0
120
131
  end
132
+
121
133
  def can_manage_item?(roles)
122
134
  intersect roles, groups_which_manage_item
123
135
  end
136
+
124
137
  def can_manage_desc_metadata?(roles)
125
138
  intersect roles, groups_which_manage_desc_metadata
126
139
  end
140
+
127
141
  def can_manage_system_metadata?(roles)
128
142
  intersect roles, groups_which_manage_system_metadata
129
143
  end
144
+
130
145
  def can_manage_content?(roles)
131
146
  intersect roles, groups_which_manage_content
132
147
  end
148
+
133
149
  def can_manage_rights?(roles)
134
150
  intersect roles, groups_which_manage_rights
135
151
  end
152
+
136
153
  def can_manage_embargo?(roles)
137
154
  intersect roles, groups_which_manage_embargo
138
155
  end
156
+
139
157
  def can_view_content?(roles)
140
158
  intersect roles, groups_which_view_content
141
159
  end
160
+
142
161
  def can_view_metadata?(roles)
143
162
  intersect roles, groups_which_view_metadata
144
163
  end
@@ -15,18 +15,26 @@ module Dor
15
15
 
16
16
  # these are the finders we will use to search for a thumb resource in contentMetadata, they will be searched in the order provided, stopping when one is reached
17
17
  thumb_xpath_finders = [
18
- {image_type: 'local', finder: "/contentMetadata/resource[@type='thumb' and @thumb='yes']/file[#{mime_type_finder}]"}, # first find a file of mimetype jp2 explicitly marked as a thumb in the resource type and with a thumb=yes attribute
19
- {image_type: 'external', finder: "/contentMetadata/resource[@type='thumb' and @thumb='yes']/externalFile[#{mime_type_finder}]"}, # same thing for external files
20
- {image_type: 'local', finder: "/contentMetadata/resource[(@type='page' or @type='image') and @thumb='yes']/file[#{mime_type_finder}]"},# next find any image or page resource types with the thumb=yes attribute of mimetype jp2
21
- {image_type: 'external', finder: "/contentMetadata/resource[(@type='page' or @type='image') and @thumb='yes']/externalFile[#{mime_type_finder}]"},# same thing for external file
22
- {image_type: 'local', finder: "/contentMetadata/resource[@type='thumb']/file[#{mime_type_finder}]"}, # next find a file of mimetype jp2 and resource type=thumb but not marked with the thumb directive
23
- {image_type: 'external', finder: "/contentMetadata/resource[@type='thumb']/externalFile[#{mime_type_finder}]"}, # same thing for external file
24
- {image_type: 'local', finder: "/contentMetadata/resource[@type='page' or @type='image']/file[#{mime_type_finder}]"}, # finally find the first page or image resource of mimetype jp2
25
- {image_type: 'external', finder: "/contentMetadata/resource[@type='page' or @type='image']/externalFile[#{mime_type_finder}]"} # same thing for external file
18
+ # first find a file of mimetype jp2 explicitly marked as a thumb in the resource type and with a thumb=yes attribute
19
+ {image_type: 'local', finder: "/contentMetadata/resource[@type='thumb' and @thumb='yes']/file[#{mime_type_finder}]"},
20
+ # same thing for external files
21
+ {image_type: 'external', finder: "/contentMetadata/resource[@type='thumb' and @thumb='yes']/externalFile[#{mime_type_finder}]"},
22
+ # next find any image or page resource types with the thumb=yes attribute of mimetype jp2
23
+ {image_type: 'local', finder: "/contentMetadata/resource[(@type='page' or @type='image') and @thumb='yes']/file[#{mime_type_finder}]"},
24
+ # same thing for external file
25
+ {image_type: 'external', finder: "/contentMetadata/resource[(@type='page' or @type='image') and @thumb='yes']/externalFile[#{mime_type_finder}]"},
26
+ # next find a file of mimetype jp2 and resource type=thumb but not marked with the thumb directive
27
+ {image_type: 'local', finder: "/contentMetadata/resource[@type='thumb']/file[#{mime_type_finder}]"},
28
+ # same thing for external file
29
+ {image_type: 'external', finder: "/contentMetadata/resource[@type='thumb']/externalFile[#{mime_type_finder}]"},
30
+ # finally find the first page or image resource of mimetype jp2
31
+ {image_type: 'local', finder: "/contentMetadata/resource[@type='page' or @type='image']/file[#{mime_type_finder}]"},
32
+ # same thing for external file
33
+ {image_type: 'external', finder: "/contentMetadata/resource[@type='page' or @type='image']/externalFile[#{mime_type_finder}]"}
26
34
  ]
27
-
35
+
28
36
  thumb_xpath_finders.each do |search_path|
29
- thumb_files = cm.xpath(search_path[:finder]) # look for a thumb
37
+ thumb_files = cm.xpath(search_path[:finder]) # look for a thumb
30
38
  if thumb_files.size > 0 # if we find one, return the filename based on whether it is a local file or external file
31
39
  if search_path[:image_type] == 'local'
32
40
  thumb_image="#{remove_druid_prefix}/#{thumb_files[0]['id']}"
@@ -35,8 +43,8 @@ module Dor
35
43
  end
36
44
  break # break out of the loop so we stop searching
37
45
  end
38
- end
39
-
46
+ end
47
+
40
48
  thumb_image
41
49
  end
42
50
 
@@ -49,7 +57,7 @@ module Dor
49
57
  thumb_filename=thumb_image.split(/#{pid_regex}[\/]/).last # everything after the druid
50
58
  "#{thumb_druid}%2F#{ERB::Util.url_encode(thumb_filename)}"
51
59
  end
52
-
60
+
53
61
  # Return a full qualified thumbnail image URL if the thumb is computable
54
62
  # @return [String] fully qualified image URL for the computed thumbnail, e.g. https://stacks.stanford.edu/image/iiif/oo000oo0001%2Ffilenamewith%20space/full
55
63
  def thumb_url
@@ -57,7 +65,9 @@ module Dor
57
65
  thumb_basename=File.basename(encoded_thumb, File.extname(encoded_thumb)) # strip the extension for URL generation
58
66
  "https://#{Dor::Config.stacks.host}/image/iiif/#{thumb_basename}/full/!400,400/0/default.jpg"
59
67
  end
60
-
68
+
69
+ # strips away the relationships that should not be shown in public desc metadata
70
+ # @return [Nokogiri::XML]
61
71
  def public_relationships
62
72
  include_elements = ['fedora:isMemberOf', 'fedora:isMemberOfCollection', 'fedora:isConstituentOf']
63
73
  rels_doc = Nokogiri::XML(datastreams['RELS-EXT'].content)
@@ -2,7 +2,9 @@ require 'rest-client'
2
2
 
3
3
  handler = Class.new do
4
4
  def fetch(prefix, identifier)
5
- client = RestClient::Resource.new(Dor::Config.metadata.catalog.url)
5
+ client = RestClient::Resource.new(Dor::Config.metadata.catalog.url,
6
+ Dor::Config.metadata.catalog.user,
7
+ Dor::Config.metadata.catalog.pass)
6
8
  client["?#{prefix.chomp}=#{identifier.chomp}"].get
7
9
  end
8
10
 
@@ -1,3 +1,3 @@
1
1
  module Dor
2
- VERSION = '5.29.0'.freeze
2
+ VERSION = '5.30.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dor-services
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.29.0
4
+ version: 5.30.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Klein
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2018-04-18 00:00:00.000000000 Z
17
+ date: 2018-05-31 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: active-fedora
@@ -22,7 +22,7 @@ dependencies:
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: '6.0'
25
+ version: '7.0'
26
26
  - - "<"
27
27
  - !ruby/object:Gem::Version
28
28
  version: 9.a
@@ -32,7 +32,7 @@ dependencies:
32
32
  requirements:
33
33
  - - ">="
34
34
  - !ruby/object:Gem::Version
35
- version: '6.0'
35
+ version: '7.0'
36
36
  - - "<"
37
37
  - !ruby/object:Gem::Version
38
38
  version: 9.a
@@ -42,14 +42,20 @@ dependencies:
42
42
  requirements:
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- version: 3.2.18
45
+ version: 4.2.10
46
+ - - "<"
47
+ - !ruby/object:Gem::Version
48
+ version: 5.2.0
46
49
  type: :runtime
47
50
  prerelease: false
48
51
  version_requirements: !ruby/object:Gem::Requirement
49
52
  requirements:
50
53
  - - ">="
51
54
  - !ruby/object:Gem::Version
52
- version: 3.2.18
55
+ version: 4.2.10
56
+ - - "<"
57
+ - !ruby/object:Gem::Version
58
+ version: 5.2.0
53
59
  - !ruby/object:Gem::Dependency
54
60
  name: confstruct
55
61
  requirement: !ruby/object:Gem::Requirement
@@ -234,20 +240,14 @@ dependencies:
234
240
  requirements:
235
241
  - - "~>"
236
242
  - !ruby/object:Gem::Version
237
- version: '1.6'
238
- - - ">="
239
- - !ruby/object:Gem::Version
240
- version: 1.6.5
243
+ version: '2.1'
241
244
  type: :runtime
242
245
  prerelease: false
243
246
  version_requirements: !ruby/object:Gem::Requirement
244
247
  requirements:
245
248
  - - "~>"
246
249
  - !ruby/object:Gem::Version
247
- version: '1.6'
248
- - - ">="
249
- - !ruby/object:Gem::Version
250
- version: 1.6.5
250
+ version: '2.1'
251
251
  - !ruby/object:Gem::Dependency
252
252
  name: solrizer
253
253
  requirement: !ruby/object:Gem::Requirement
@@ -530,16 +530,16 @@ dependencies:
530
530
  name: rubocop
531
531
  requirement: !ruby/object:Gem::Requirement
532
532
  requirements:
533
- - - ">="
533
+ - - "~>"
534
534
  - !ruby/object:Gem::Version
535
- version: '0'
535
+ version: 0.56.0
536
536
  type: :development
537
537
  prerelease: false
538
538
  version_requirements: !ruby/object:Gem::Requirement
539
539
  requirements:
540
- - - ">="
540
+ - - "~>"
541
541
  - !ruby/object:Gem::Version
542
- version: '0'
542
+ version: 0.56.0
543
543
  - !ruby/object:Gem::Dependency
544
544
  name: yard
545
545
  requirement: !ruby/object:Gem::Requirement
@@ -562,7 +562,10 @@ extensions: []
562
562
  extra_rdoc_files: []
563
563
  files:
564
564
  - config/certs/README
565
+ - config/certs/robots-dor-dev.crt
566
+ - config/certs/robots-dor-dev.key
565
567
  - config/config_defaults.yml
568
+ - config/dev_console_env.rb
566
569
  - config/dev_console_env.rb.example
567
570
  - config/predicate_mappings.yml
568
571
  - lib/dor-services.rb
@@ -658,7 +661,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
658
661
  version: 1.3.6
659
662
  requirements: []
660
663
  rubyforge_project:
661
- rubygems_version: 2.6.11
664
+ rubygems_version: 2.6.13
662
665
  signing_key:
663
666
  specification_version: 4
664
667
  summary: Ruby implmentation of DOR services used by the SULAIR Digital Library