hydra-core 6.3.4 → 6.4.0.pre1
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 +4 -4
- data/app/models/mods_asset.rb +0 -1
- data/lib/generators/hydra/templates/ability.rb +2 -5
- data/lib/hydra-core.rb +17 -1
- data/lib/hydra-head/version.rb +1 -1
- data/lib/hydra/controller/download_behavior.rb +9 -3
- data/lib/railties/hydra-fixtures.rake +0 -1
- data/spec/controllers/downloads_controller_spec.rb +20 -3
- data/spec/helpers/upload_behavior_spec.rb +6 -6
- data/spec/lib/model_methods_spec.rb +2 -2
- metadata +6 -7
- data/lib/hydra.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2138b3738292db81150e74f4873486da132a065
|
4
|
+
data.tar.gz: 1493d7514bd788955066095b7b836afba12e9467
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab203db4e2d63aa4e0c82bcd347685490f9575fe67ab50e291829f65a3c88f2e630401cb3c4b23b0a0e1aa4dd8bcd05dbaea69615b643a4829c7e27e234b8750
|
7
|
+
data.tar.gz: 6735a3ed38c61fdb294f8d3a780b4da2f39d5548981fd31fa8ae9d034d55df1626e694bde5f45d628321b283d15a3b19971b0fe4bd1d80d7d41baeba37241364
|
data/app/models/mods_asset.rb
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
class Ability
|
2
|
-
include Hydra::Ability
|
2
|
+
include Hydra::Ability
|
3
3
|
|
4
|
-
# Define any customized permissions here.
|
4
|
+
# Define any customized permissions here.
|
5
5
|
def custom_permissions
|
6
|
-
|
7
6
|
# Limits deleting objects to a the admin user
|
8
7
|
#
|
9
8
|
# if current_user.admin?
|
@@ -15,7 +14,5 @@ class Ability
|
|
15
14
|
# if user_groups.include? 'special_group'
|
16
15
|
# can [:create], ActiveFedora::Base
|
17
16
|
# end
|
18
|
-
|
19
17
|
end
|
20
|
-
|
21
18
|
end
|
data/lib/hydra-core.rb
CHANGED
@@ -1,4 +1,20 @@
|
|
1
|
-
require 'hydra'
|
1
|
+
require 'hydra-access-controls'
|
2
|
+
|
3
|
+
module Hydra
|
4
|
+
extend ActiveSupport::Autoload
|
5
|
+
autoload :GlobalConfigurable
|
6
|
+
extend GlobalConfigurable
|
7
|
+
autoload :Controller
|
8
|
+
autoload :ModelMethods
|
9
|
+
autoload :RepositoryController
|
10
|
+
autoload :Solr
|
11
|
+
module ModelMixins
|
12
|
+
# ModelMixins already loaded by hydra-access-controls
|
13
|
+
autoload :CommonMetadata
|
14
|
+
autoload :SolrDocumentExtension
|
15
|
+
end
|
16
|
+
autoload :Models
|
17
|
+
end
|
2
18
|
|
3
19
|
module HydraHead
|
4
20
|
require 'hydra-head/engine' if defined?(Rails)
|
data/lib/hydra-head/version.rb
CHANGED
@@ -14,15 +14,21 @@ module Hydra
|
|
14
14
|
# we can now examine asset and determine if we should send_content, or some other action.
|
15
15
|
send_content (asset)
|
16
16
|
else
|
17
|
-
logger.info "Can not read #{params[
|
18
|
-
raise Hydra::AccessDenied.new("You do not have sufficient access privileges to read this document, which has been marked private.", :read, params[
|
17
|
+
logger.info "Can not read #{params[asset_param_key]}"
|
18
|
+
raise Hydra::AccessDenied.new("You do not have sufficient access privileges to read this document, which has been marked private.", :read, params[asset_param_key])
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
22
|
protected
|
23
23
|
|
24
|
+
# Override this method if asset PID is not passed in params[:id],
|
25
|
+
# for example, in a nested resource.
|
26
|
+
def asset_param_key
|
27
|
+
:id
|
28
|
+
end
|
29
|
+
|
24
30
|
def load_asset
|
25
|
-
@asset = ActiveFedora::Base.load_instance_from_solr(params[
|
31
|
+
@asset = ActiveFedora::Base.load_instance_from_solr(params[asset_param_key])
|
26
32
|
end
|
27
33
|
|
28
34
|
def load_datastream
|
@@ -74,9 +74,9 @@ describe DownloadsController do
|
|
74
74
|
end
|
75
75
|
describe "stream" do
|
76
76
|
before do
|
77
|
-
stub_response =
|
77
|
+
stub_response = double()
|
78
78
|
stub_response.stub(:read_body).and_yield("one1").and_yield('two2').and_yield('thre').and_yield('four')
|
79
|
-
stub_repo =
|
79
|
+
stub_repo = double()
|
80
80
|
stub_repo.stub(:datastream_dissemination).and_yield(stub_response)
|
81
81
|
stub_ds = ActiveFedora::Datastream.new
|
82
82
|
stub_ds.stub(:repository).and_return(stub_repo)
|
@@ -84,7 +84,7 @@ describe DownloadsController do
|
|
84
84
|
stub_ds.stub(:dsSize).and_return(16)
|
85
85
|
stub_ds.stub(:dsid).and_return('webm')
|
86
86
|
stub_ds.stub(:pid).and_return('changeme:test')
|
87
|
-
stub_file =
|
87
|
+
stub_file = double('stub object', datastreams: {'webm' => stub_ds}, pid:'changeme:test', label: "MyVideo.webm")
|
88
88
|
ActiveFedora::Base.should_receive(:load_instance_from_solr).with('changeme:test').and_return(stub_file)
|
89
89
|
controller.stub(:can?).with(:read, 'changeme:test').and_return(true)
|
90
90
|
controller.stub(:log_download)
|
@@ -139,5 +139,22 @@ describe DownloadsController do
|
|
139
139
|
end
|
140
140
|
end
|
141
141
|
end
|
142
|
+
|
143
|
+
describe "overriding the default asset param key" do
|
144
|
+
before do
|
145
|
+
Rails.application.routes.draw do
|
146
|
+
scope 'objects/:object_id' do
|
147
|
+
get 'download' => 'downloads#show'
|
148
|
+
end
|
149
|
+
end
|
150
|
+
sign_in @user
|
151
|
+
end
|
152
|
+
it "should use the custom param value to retrieve the asset" do
|
153
|
+
controller.stub(:asset_param_key).and_return(:object_id)
|
154
|
+
get "show", :object_id => @obj.pid
|
155
|
+
response.should be_successful
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
142
159
|
end
|
143
160
|
end
|
@@ -8,28 +8,28 @@ describe Hydra::Controller::UploadBehavior do
|
|
8
8
|
|
9
9
|
describe "add_posted_blob_to_asset" do
|
10
10
|
it "should set object title and label, relying on datastream_id to set dsId" do
|
11
|
-
mock_file =
|
11
|
+
mock_file = double("File")
|
12
12
|
file_name = "Posted Filename.foo"
|
13
13
|
helper.stub(:params).and_return( :Filedata=>[mock_file], :Filename=>file_name, "container_id"=>"hydrangea:2973" )
|
14
|
-
mock_fa =
|
14
|
+
mock_fa = double("file asset")
|
15
15
|
helper.stub(:datastream_id).and_return('bar')
|
16
16
|
mock_fa.should_receive(:add_file).with(mock_file, 'bar', file_name)
|
17
17
|
helper.add_posted_blob_to_asset(mock_fa,mock_file, file_name) # this is the deprecated 2 argument method
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should support submissions from swfupload" do
|
21
|
-
mock_file =
|
21
|
+
mock_file = double("File")
|
22
22
|
file_name = "Posted Filename.foo"
|
23
23
|
helper.stub(:params).and_return( :Filedata=>[mock_file], :Filename=>file_name, "container_id"=>"hydrangea:2973" )
|
24
|
-
mock_fa =
|
24
|
+
mock_fa = double("file asset")
|
25
25
|
mock_fa.should_receive(:add_file).with(mock_file, 'content', file_name)
|
26
26
|
helper.add_posted_blob_to_asset(mock_fa,mock_file, file_name)
|
27
27
|
end
|
28
28
|
it "should support submissions from single-file uploader, defaulting to dsId of content" do
|
29
|
-
mock_file =
|
29
|
+
mock_file = double("File")
|
30
30
|
file_name = "Posted Filename.foo"
|
31
31
|
helper.stub(:params).and_return( :Filedata=>[mock_file], :container_id=>"hydrangea:2973" )
|
32
|
-
mock_fa =
|
32
|
+
mock_fa = double("file asset")
|
33
33
|
mock_fa.should_receive(:add_file).with(mock_file, 'content', file_name)
|
34
34
|
helper.add_posted_blob_to_asset(mock_fa,mock_file, file_name)
|
35
35
|
end
|
@@ -27,7 +27,7 @@ describe Hydra::ModelMethods do
|
|
27
27
|
subject.properties.depositor.should == ['chris']
|
28
28
|
end
|
29
29
|
it "should accept objects that respond_to? :user_key" do
|
30
|
-
stub_user =
|
30
|
+
stub_user = double(:user, :user_key=>'monty')
|
31
31
|
subject.apply_depositor_metadata(stub_user)
|
32
32
|
subject.properties.depositor.should == ['monty']
|
33
33
|
end
|
@@ -39,7 +39,7 @@ describe Hydra::ModelMethods do
|
|
39
39
|
mock_file = "File contents"
|
40
40
|
subject.should_receive(:add_file_datastream).with(mock_file, :label=>file_name, :mimeType=>"mymimetype", :dsid=>'bar')
|
41
41
|
subject.should_receive(:set_title_and_label).with( file_name, :only_if_blank=>true )
|
42
|
-
MIME::Types.should_receive(:of).with(file_name).and_return([
|
42
|
+
MIME::Types.should_receive(:of).with(file_name).and_return([double(:content_type=>"mymimetype")])
|
43
43
|
subject.add_file(mock_file, 'bar', file_name)
|
44
44
|
end
|
45
45
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hydra-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.4.0.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Zumwalt, Bess Sadler, Julie Meloni, Naomi Dushay, Jessie Keck, John Scofield,
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-09-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -93,14 +93,14 @@ dependencies:
|
|
93
93
|
requirements:
|
94
94
|
- - '='
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 6.
|
96
|
+
version: 6.4.0.pre1
|
97
97
|
type: :runtime
|
98
98
|
prerelease: false
|
99
99
|
version_requirements: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - '='
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 6.
|
103
|
+
version: 6.4.0.pre1
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
105
|
name: jettywrapper
|
106
106
|
requirement: !ruby/object:Gem::Requirement
|
@@ -211,7 +211,6 @@ files:
|
|
211
211
|
- lib/hydra-head/engine.rb
|
212
212
|
- lib/hydra-head/routes.rb
|
213
213
|
- lib/hydra-head/version.rb
|
214
|
-
- lib/hydra.rb
|
215
214
|
- lib/hydra/controller.rb
|
216
215
|
- lib/hydra/controller/controller_behavior.rb
|
217
216
|
- lib/hydra/controller/download_behavior.rb
|
@@ -276,9 +275,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
276
275
|
version: 1.9.3
|
277
276
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
278
277
|
requirements:
|
279
|
-
- - '
|
278
|
+
- - '>'
|
280
279
|
- !ruby/object:Gem::Version
|
281
|
-
version:
|
280
|
+
version: 1.3.1
|
282
281
|
requirements: []
|
283
282
|
rubyforge_project:
|
284
283
|
rubygems_version: 2.0.5
|
data/lib/hydra.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'hydra-access-controls'
|
2
|
-
|
3
|
-
module Hydra
|
4
|
-
extend ActiveSupport::Autoload
|
5
|
-
autoload :GlobalConfigurable
|
6
|
-
extend GlobalConfigurable
|
7
|
-
autoload :Controller
|
8
|
-
autoload :ModelMethods
|
9
|
-
autoload :RepositoryController
|
10
|
-
autoload :Solr
|
11
|
-
module ModelMixins
|
12
|
-
# ModelMixins already loaded by hydra-access-controls
|
13
|
-
autoload :CommonMetadata
|
14
|
-
autoload :SolrDocumentExtension
|
15
|
-
end
|
16
|
-
autoload :Models
|
17
|
-
end
|