cul_scv_hydra 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/app/models/bag_aggregator.rb +16 -0
- data/app/models/content_aggregator.rb +16 -0
- data/app/models/dcdocument.rb +9 -0
- data/app/models/generic_aggregator.rb +16 -0
- data/app/models/generic_object.rb +16 -0
- data/app/models/jp2_image_aggregator.rb +38 -0
- data/app/models/mets_structured_aggregator.rb +16 -0
- data/app/models/resource.rb +59 -0
- data/app/models/static_audio_aggregator.rb +21 -0
- data/app/models/static_image_aggregator.rb +21 -0
- data/config/fedora.yml +6 -0
- data/config/predicate_mappings.yml +56 -0
- data/config/solr.yml +15 -0
- data/config/solr_mappings.yml +26 -0
- data/config/solr_value_maps.yml +29 -0
- data/lib/cul_scv_hydra.rb +14 -0
- data/lib/cul_scv_hydra/access_controls_enforcement.rb +53 -0
- data/lib/cul_scv_hydra/active_fedora.rb +18 -0
- data/lib/cul_scv_hydra/active_fedora/model.rb +8 -0
- data/lib/cul_scv_hydra/active_fedora/model/aggregator.rb +45 -0
- data/lib/cul_scv_hydra/active_fedora/model/common.rb +221 -0
- data/lib/cul_scv_hydra/active_fedora/model/dcdocument.rb +43 -0
- data/lib/cul_scv_hydra/active_fedora/model/resource.rb +79 -0
- data/lib/cul_scv_hydra/controllers.rb +13 -0
- data/lib/cul_scv_hydra/controllers/aggregates.rb +95 -0
- data/lib/cul_scv_hydra/controllers/aggregator_controller_helper.rb +27 -0
- data/lib/cul_scv_hydra/controllers/catalog.rb +13 -0
- data/lib/cul_scv_hydra/controllers/content_aggregators.rb +83 -0
- data/lib/cul_scv_hydra/controllers/datastreams.rb +146 -0
- data/lib/cul_scv_hydra/controllers/helpers.rb +11 -0
- data/lib/cul_scv_hydra/controllers/helpers/active_fedora_helper_behavior.rb +9 -0
- data/lib/cul_scv_hydra/controllers/helpers/application_helper_behavior.rb +17 -0
- data/lib/cul_scv_hydra/controllers/helpers/dc_metadata_helper_behavior.rb +9 -0
- data/lib/cul_scv_hydra/controllers/helpers/hydra_assets_helper_behavior.rb +46 -0
- data/lib/cul_scv_hydra/controllers/helpers/hydra_autocomplete_helper_behavior.rb +35 -0
- data/lib/cul_scv_hydra/controllers/helpers/hydra_uploader_helper_behavior.rb +34 -0
- data/lib/cul_scv_hydra/controllers/helpers/resources_helper_behavior.rb +160 -0
- data/lib/cul_scv_hydra/controllers/resources.rb +162 -0
- data/lib/cul_scv_hydra/controllers/static_image_aggregators.rb +106 -0
- data/lib/cul_scv_hydra/controllers/suggestions.rb +127 -0
- data/lib/cul_scv_hydra/controllers/terms.rb +152 -0
- data/lib/cul_scv_hydra/engine.rb +9 -0
- data/lib/cul_scv_hydra/om.rb +11 -0
- data/lib/cul_scv_hydra/om/dc_metadata.rb +70 -0
- data/lib/cul_scv_hydra/om/scv_mods_document.rb +132 -0
- data/lib/cul_scv_hydra/om/standard_mods.rb +111 -0
- data/lib/cul_scv_hydra/solrizer.rb +12 -0
- data/lib/cul_scv_hydra/solrizer/extractor.rb +27 -0
- data/lib/cul_scv_hydra/solrizer/field_mapper.rb +30 -0
- data/lib/cul_scv_hydra/solrizer/terminology_based_solrizer.rb +112 -0
- data/lib/cul_scv_hydra/solrizer/value_mapper.rb +35 -0
- data/lib/cul_scv_hydra/version.rb +10 -0
- metadata +333 -0
@@ -0,0 +1,16 @@
|
|
1
|
+
require "active-fedora"
|
2
|
+
require "hydra"
|
3
|
+
class BagAggregator < ::ActiveFedora::Base
|
4
|
+
extend ActiveModel::Callbacks
|
5
|
+
include ::ActiveFedora::DatastreamCollections
|
6
|
+
include ::ActiveFedora::Relationships
|
7
|
+
include ::Hydra::ModelMethods
|
8
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Common
|
9
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Aggregator
|
10
|
+
|
11
|
+
alias :file_objects :resources
|
12
|
+
|
13
|
+
def route_as
|
14
|
+
"collection"
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "active-fedora"
|
2
|
+
require "hydra"
|
3
|
+
class ContentAggregator < ::ActiveFedora::Base
|
4
|
+
extend ActiveModel::Callbacks
|
5
|
+
include ::ActiveFedora::DatastreamCollections
|
6
|
+
include ::ActiveFedora::Relationships
|
7
|
+
include ::Hydra::ModelMethods
|
8
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Common
|
9
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Aggregator
|
10
|
+
|
11
|
+
alias :file_objects :resources
|
12
|
+
|
13
|
+
def route_as
|
14
|
+
"multipartitem"
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require "active-fedora"
|
2
|
+
require "hydra"
|
3
|
+
class DcDocument < ActiveFedora::Base
|
4
|
+
include ::ActiveFedora::DatastreamCollections
|
5
|
+
include ::ActiveFedora::Relationships
|
6
|
+
include Hydra::ModelMethods
|
7
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Common
|
8
|
+
alias :file_objects :resources
|
9
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "active-fedora"
|
2
|
+
require "hydra"
|
3
|
+
class GenericAggregator < ::ActiveFedora::Base
|
4
|
+
extend ActiveModel::Callbacks
|
5
|
+
include ::ActiveFedora::DatastreamCollections
|
6
|
+
include ::ActiveFedora::Relationships
|
7
|
+
include ::Hydra::ModelMethods
|
8
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Common
|
9
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Aggregator
|
10
|
+
|
11
|
+
alias :file_objects :resources
|
12
|
+
|
13
|
+
def route_as
|
14
|
+
"multipartitem"
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "active-fedora"
|
2
|
+
require "hydra"
|
3
|
+
class GenericObject < ::ActiveFedora::Base
|
4
|
+
extend ActiveModel::Callbacks
|
5
|
+
include ::ActiveFedora::DatastreamCollections
|
6
|
+
include ::ActiveFedora::Relationships
|
7
|
+
include ::Hydra::ModelMethods
|
8
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Common
|
9
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Aggregator
|
10
|
+
|
11
|
+
alias :file_objects :resources
|
12
|
+
|
13
|
+
def route_as
|
14
|
+
"multipartitem"
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require "active-fedora"
|
2
|
+
require "hydra"
|
3
|
+
class JP2ImageAggregator < ::ActiveFedora::Base
|
4
|
+
extend ActiveModel::Callbacks
|
5
|
+
include ::ActiveFedora::DatastreamCollections
|
6
|
+
include ::ActiveFedora::Relationships
|
7
|
+
include ::Hydra::ModelMethods
|
8
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Common
|
9
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Aggregator
|
10
|
+
|
11
|
+
has_datastream :name => "SOURCE", :type=>::ActiveFedora::Datastream, :mimeType=>"image/jp2", :controlGroup=>'E'
|
12
|
+
|
13
|
+
alias :file_objects :resources
|
14
|
+
|
15
|
+
def route_as
|
16
|
+
"zoomingimage"
|
17
|
+
end
|
18
|
+
|
19
|
+
def index_type_label
|
20
|
+
"PART"
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_solr(solr_doc = Hash.new, opts={})
|
24
|
+
solr_doc = super
|
25
|
+
source = self.datastreams["SOURCE"]
|
26
|
+
source.profile
|
27
|
+
if source.controlGroup == 'E'
|
28
|
+
solr_doc["rft_id"] = source.dsLocation
|
29
|
+
else
|
30
|
+
rc = ActiveFedora::RubydoraConnection.instance.connection
|
31
|
+
url = rc.config["url"]
|
32
|
+
uri = URI::parse(url)
|
33
|
+
url = "#{uri.scheme}://#{uri.host}:#{uri.port}/fedora/objects/#{pid}/datastreams/SOURCE/content"
|
34
|
+
solr_doc["rft_id"] = url
|
35
|
+
end
|
36
|
+
solr_doc
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "active-fedora"
|
2
|
+
require "hydra"
|
3
|
+
class METSStructuredAggregator < ::ActiveFedora::Base
|
4
|
+
extend ActiveModel::Callbacks
|
5
|
+
include ::ActiveFedora::DatastreamCollections
|
6
|
+
include ::ActiveFedora::Relationships
|
7
|
+
include ::Hydra::ModelMethods
|
8
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Common
|
9
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Aggregator
|
10
|
+
|
11
|
+
alias :file_objects :resources
|
12
|
+
|
13
|
+
def route_as
|
14
|
+
"multipartitem"
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require "active-fedora"
|
2
|
+
require "cul_image_props"
|
3
|
+
require "hydra"
|
4
|
+
require "mime/types"
|
5
|
+
require "uri"
|
6
|
+
class Resource < ::ActiveFedora::Base
|
7
|
+
extend ActiveModel::Callbacks
|
8
|
+
|
9
|
+
include ::ActiveFedora::DatastreamCollections
|
10
|
+
include ::ActiveFedora::Relationships
|
11
|
+
include ::Hydra::ModelMethods
|
12
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Common
|
13
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Resource
|
14
|
+
|
15
|
+
alias :file_objects :resources
|
16
|
+
|
17
|
+
def route_as
|
18
|
+
"resource"
|
19
|
+
end
|
20
|
+
|
21
|
+
def index_type_label
|
22
|
+
"FILE RESOURCE"
|
23
|
+
end
|
24
|
+
|
25
|
+
def to_solr(solr_doc = Hash.new, opts={})
|
26
|
+
super
|
27
|
+
unless solr_doc["extent_s"] || self.datastreams["CONTENT"].nil?
|
28
|
+
solr_doc["extent_s"] = [self.datastreams["CONTENT"].size]
|
29
|
+
end
|
30
|
+
solr_doc
|
31
|
+
end
|
32
|
+
|
33
|
+
def set_title_and_label(new_title, opts={})
|
34
|
+
if opts[:only_if_blank]
|
35
|
+
if self.label.nil? || self.label.empty?
|
36
|
+
self.label = new_title
|
37
|
+
self.set_title( new_title )
|
38
|
+
end
|
39
|
+
else
|
40
|
+
self.label = new_title
|
41
|
+
set_title( new_title )
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
# Set the title and label on the current object
|
46
|
+
#
|
47
|
+
# @param [String] new_title
|
48
|
+
# @param [Hash] opts (optional) hash of configuration options
|
49
|
+
def set_title(new_title, opts={})
|
50
|
+
if has_desc?
|
51
|
+
desc_metadata_ds = self.datastreams["descMetadata"]
|
52
|
+
if desc_metadata_ds.respond_to?(:title_values)
|
53
|
+
desc_metadata_ds.title_values = new_title
|
54
|
+
else
|
55
|
+
desc_metadata_ds.title = new_title
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "active-fedora"
|
2
|
+
require "hydra"
|
3
|
+
class StaticAudioAggregator < ::ActiveFedora::Base
|
4
|
+
extend ActiveModel::Callbacks
|
5
|
+
|
6
|
+
include ::ActiveFedora::DatastreamCollections
|
7
|
+
include ::ActiveFedora::Relationships
|
8
|
+
include ::Hydra::ModelMethods
|
9
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Common
|
10
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Aggregator
|
11
|
+
|
12
|
+
alias :file_objects :resources
|
13
|
+
|
14
|
+
def route_as
|
15
|
+
"audio"
|
16
|
+
end
|
17
|
+
|
18
|
+
def index_type_label
|
19
|
+
"PART"
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "active-fedora"
|
2
|
+
require "hydra"
|
3
|
+
class StaticImageAggregator < ::ActiveFedora::Base
|
4
|
+
extend ActiveModel::Callbacks
|
5
|
+
|
6
|
+
include ::ActiveFedora::DatastreamCollections
|
7
|
+
include ::ActiveFedora::Relationships
|
8
|
+
include ::Hydra::ModelMethods
|
9
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Common
|
10
|
+
include Cul::Scv::Hydra::ActiveFedora::Model::Aggregator
|
11
|
+
|
12
|
+
alias :file_objects :resources
|
13
|
+
|
14
|
+
def route_as
|
15
|
+
"image"
|
16
|
+
end
|
17
|
+
|
18
|
+
def index_type_label
|
19
|
+
"PART"
|
20
|
+
end
|
21
|
+
end
|
data/config/fedora.yml
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
# The default namespace maps to the default namespace for generating rels_ext from solr
|
2
|
+
:default_namespace: info:fedora/fedora-system:def/relations-external#
|
3
|
+
|
4
|
+
# namespace mappings---
|
5
|
+
# you can add specific mappings for your institution by providing the following:
|
6
|
+
# namespace_uri:
|
7
|
+
# :relationship_symbol: relationship_identifier
|
8
|
+
#
|
9
|
+
# For example, if you have the following element in your rels_ext:
|
10
|
+
#
|
11
|
+
# <oai:itemID>oai:example.edu:changeme:500</oai:itemID>
|
12
|
+
#
|
13
|
+
# With the last two lines of this file uncommented, the relationships hash of your object will include:
|
14
|
+
# :oai_item_id => ["info:fedora/oai:example.edu:changeme:500"]
|
15
|
+
#
|
16
|
+
:predicate_mapping:
|
17
|
+
http://purl.oclc.org/NET/CUL/:
|
18
|
+
:cul_member_of: memberOf
|
19
|
+
:cul_metadata_for: metadataFor
|
20
|
+
info:fedora/fedora-system:def/relations-external#:
|
21
|
+
:conforms_to: conformsTo
|
22
|
+
:has_annotation: hasAnnotation
|
23
|
+
:has_collection_member: hasCollectionMember
|
24
|
+
:has_constituent: hasConstituent
|
25
|
+
:has_dependent: hasDependent
|
26
|
+
:has_derivation: hasDerivation
|
27
|
+
:has_description: hasDescription
|
28
|
+
:has_equivalent: hasEquivalent
|
29
|
+
:has_metadata: hasMetadata
|
30
|
+
:has_member: hasMember
|
31
|
+
:has_model: hasModel
|
32
|
+
:has_part: hasPart
|
33
|
+
:has_subset: hasSubset
|
34
|
+
:is_annotation_of: isAnnotationOf
|
35
|
+
:is_constituent_of: isConstituentOf
|
36
|
+
:is_dependent_of: isDependentOf
|
37
|
+
:is_derivation_of: isDerivationOf
|
38
|
+
:is_description_of: isDescriptionOf
|
39
|
+
:is_member_of: isMemberOf
|
40
|
+
:is_member_of_collection: isMemberOfCollection
|
41
|
+
:is_metadata_for: isMetadataFor
|
42
|
+
:is_part_of: isPartOf
|
43
|
+
:is_subset_of: isSubsetOf
|
44
|
+
info:fedora/fedora-system:def/model#:
|
45
|
+
:has_model: hasModel
|
46
|
+
http://purl.oclc.org/NET/CUL/RESOURCE/STILLIMAGE/BASIC/:
|
47
|
+
:image_width: imageWidth
|
48
|
+
:image_length: imageLength
|
49
|
+
http://purl.oclc.org/NET/CUL/RESOURCE/STILLIMAGE/ASSESSMENT/:
|
50
|
+
:x_sampling: xSamplingFrequency
|
51
|
+
:y_sampling: ySamplingFrequency
|
52
|
+
:sampling_unit: samplingFrequencyUnit
|
53
|
+
http://purl.org/dc/terms/:
|
54
|
+
:extent: extent
|
55
|
+
http://www.w3.org/1999/02/22-rdf-syntax-ns#:
|
56
|
+
:rdf_type: type
|
data/config/solr.yml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
development:
|
2
|
+
default:
|
3
|
+
url: http://127.0.0.1:8983/solr/development
|
4
|
+
full_text:
|
5
|
+
url: http://127.0.0.1:8983/solr/development
|
6
|
+
test:
|
7
|
+
default:
|
8
|
+
url: http://127.0.0.1:8983/solr/test
|
9
|
+
full_text:
|
10
|
+
url: http://127.0.0.1:8983/solr/test
|
11
|
+
default:
|
12
|
+
default:
|
13
|
+
url: http://127.0.0.1:8983/solr/test
|
14
|
+
full_text:
|
15
|
+
url: http://127.0.0.1:8983/solr/test
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Define additional properties for OM terms to communicate with Solrizer
|
2
|
+
# (Solrizer's use of dynamic fields to turn OM terms into Solr fields)
|
3
|
+
# example: t.my_term(:index_as=>[:searchable, :displayable])
|
4
|
+
# implies that the Solr document will have fields my_term_t and my_term_display
|
5
|
+
# if there is a value for the OM term :my_term in an object.
|
6
|
+
# :textable is a dummy; the field named returned will be 'text'
|
7
|
+
id: id
|
8
|
+
default: searchable
|
9
|
+
searchable:
|
10
|
+
default: _t
|
11
|
+
date: _dt
|
12
|
+
string: _t
|
13
|
+
text: _t
|
14
|
+
symbol: _s
|
15
|
+
integer: _i
|
16
|
+
long: _l
|
17
|
+
boolean: _b
|
18
|
+
float: _f
|
19
|
+
double: _d
|
20
|
+
displayable: _display
|
21
|
+
facetable: _facet
|
22
|
+
sortable: _sort
|
23
|
+
textable:
|
24
|
+
# this is a dummy value, all values will be mapped to a field called 'text'
|
25
|
+
default: _t
|
26
|
+
unstemmed_searchable: _unstem_search
|
@@ -0,0 +1,29 @@
|
|
1
|
+
:marc_to_facet :
|
2
|
+
'NNC-A' : 'Avery'
|
3
|
+
'NNC-ART' : 'Office of Art Properties'
|
4
|
+
'NNBa' : 'Barnard College Library'
|
5
|
+
'NNC-EA' : 'East Asian'
|
6
|
+
'NNC-L' : 'Law Library'
|
7
|
+
'NNC-M' : 'Health Sciences Library'
|
8
|
+
'NNC-MUS' : 'Music Library'
|
9
|
+
'NNC-RB' : 'RBML'
|
10
|
+
'NyNyCBL' : 'Burke Library'
|
11
|
+
'NyNyCOH' : 'CCOH'
|
12
|
+
:marc_to_display :
|
13
|
+
'NNC-A' : 'Avery Architectural & Fine Arts Library'
|
14
|
+
'NNC-ART' : 'Office of Art Properties'
|
15
|
+
'NNBa' : 'Barnard College Library'
|
16
|
+
'NNC-EA' : 'Starr East Asian'
|
17
|
+
'NNC-L' : 'Law Library'
|
18
|
+
'NNC-M' : 'Health Sciences Library'
|
19
|
+
'NNC-MUS' : 'Music Library'
|
20
|
+
'NNC-RB' : 'Rare Book and Manuscript Library'
|
21
|
+
'NyNyCBL' : 'Burke Library at Union Theological Seminary'
|
22
|
+
'NyNyCOH' : 'Columbia Center for Oral History Collections'
|
23
|
+
:project_facet :
|
24
|
+
'Customer Order Collection' : 'Pres Orders'
|
25
|
+
"Children's Drawings of the Spanish Civil War (online exhibition)" : 'Spanish Civil War'
|
26
|
+
"Jewels in her crown: treasures of Columbia University Libraries special collections" : 'Jewels in her Crown'
|
27
|
+
"Russian Imperial Corps of Pages" : 'Russian Corps of Pages'
|
28
|
+
"Osama bin Laden posters" : 'Osama bin Laden posters'
|
29
|
+
"Chinese paper gods" : 'Chinese paper gods'
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
module Cul
|
3
|
+
module Scv
|
4
|
+
module Hydra
|
5
|
+
end
|
6
|
+
end
|
7
|
+
end
|
8
|
+
require "cul_scv_hydra/access_controls_enforcement"
|
9
|
+
require "cul_scv_hydra/active_fedora"
|
10
|
+
require "cul_scv_hydra/controllers"
|
11
|
+
require "cul_scv_hydra/om"
|
12
|
+
require "cul_scv_hydra/solrizer"
|
13
|
+
require "cul_scv_hydra/version"
|
14
|
+
require "cul_scv_hydra/engine" if defined? Rails
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Cul::Scv::Hydra::AccessControlsEnforcement
|
2
|
+
|
3
|
+
private
|
4
|
+
|
5
|
+
def build_lucene_query(user_query)
|
6
|
+
q = ""
|
7
|
+
# start query of with user supplied query term
|
8
|
+
q << "_query_:\"{!dismax qf=$qf_dismax pf=$pf_dismax}#{user_query}\""
|
9
|
+
|
10
|
+
# Append the exclusion of Resources
|
11
|
+
q << " AND NOT _query_:\"info\\\\:fedora/ldpd\\\\:Resource\""
|
12
|
+
|
13
|
+
# Append the query responsible for adding the users discovery level
|
14
|
+
permission_types = ["edit","discover","read"]
|
15
|
+
field_queries = []
|
16
|
+
embargo_query = ""
|
17
|
+
permission_types.each do |type|
|
18
|
+
field_queries << "_query_:\"#{type}_access_group_t:public\""
|
19
|
+
end
|
20
|
+
|
21
|
+
unless current_user.nil?
|
22
|
+
# for roles
|
23
|
+
RoleMapper.roles(current_user.login).each do |role|
|
24
|
+
permission_types.each do |type|
|
25
|
+
field_queries << "_query_:\"#{type}_access_group_t:#{role}\""
|
26
|
+
end
|
27
|
+
end
|
28
|
+
# for individual person access
|
29
|
+
permission_types.each do |type|
|
30
|
+
field_queries << "_query_:\"#{type}_access_person_t:#{current_user.login}\""
|
31
|
+
end
|
32
|
+
if current_user.is_being_superuser?(session)
|
33
|
+
permission_types.each do |type|
|
34
|
+
field_queries << "_query_:\"#{type}_access_person_t:[* TO *]\""
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# if it is the depositor and it is under embargo, that is ok
|
39
|
+
# otherwise if it not the depositor and it is under embargo, don't show it
|
40
|
+
embargo_query = " OR ((_query_:\"embargo_release_date_dt:[NOW TO *]\" AND _query_:\"depositor_t:#{current_user.login}\") AND NOT (NOT _query_:\"depositor_t:#{current_user.login}\" AND _query_:\"embargo_release_date_dt:[NOW TO *]\"))"
|
41
|
+
end
|
42
|
+
|
43
|
+
# remove anything with an embargo release date in the future
|
44
|
+
#embargo_query = " AND NOT _query_:\"embargo_release_date_dt:[NOW TO *]\"" if embargo_query.blank?
|
45
|
+
field_queries << " NOT _query_:\"embargo_release_date_dt:[NOW TO *]\"" if embargo_query.blank?
|
46
|
+
|
47
|
+
q << " AND (#{field_queries.join(" OR ")})"
|
48
|
+
q << embargo_query
|
49
|
+
return q
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
end
|