workarea-core 3.4.15 → 3.4.16
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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b344edcc1824bf26da32d7d12bc44579c7199f6aac8b0c7475657f3ee7aac70b
|
4
|
+
data.tar.gz: bfe91752df68f85cf594bf84dea1f9639020ae25f51c9b0506f638fed86e1f99
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74cc0ecbd7977a33d887c5f1519f4bab35608869f8f46e1a0c74967f42bc8194b738bfc25f43788592fbfb5457fccb3d3a1964f925febbb4aa3f20ad8e60d60d
|
7
|
+
data.tar.gz: 5126befad7fff351d48d575f80ce336121341301c1303f970934e21162a932bd46e1af55862d4669b17d6ef9ed07b443789fbdb094263e084f035f974b3650a7
|
@@ -2,15 +2,16 @@ module Workarea
|
|
2
2
|
class DirectUpload
|
3
3
|
class InvalidTypeError < RuntimeError; end
|
4
4
|
|
5
|
-
def self.ensure_cors!
|
6
|
-
|
7
|
-
url
|
5
|
+
def self.ensure_cors!(request_url)
|
6
|
+
uri = URI.parse(request_url)
|
7
|
+
url = "#{uri.scheme}://#{uri.host}"
|
8
|
+
url += ":#{uri.port}" unless uri.port.in? [80, 443]
|
8
9
|
|
9
10
|
Workarea.s3.put_bucket_cors(
|
10
11
|
Configuration::S3.bucket,
|
11
12
|
'CORSConfiguration' => [
|
12
13
|
{
|
13
|
-
'ID' => "direct_upload_#{
|
14
|
+
'ID' => "direct_upload_#{url}",
|
14
15
|
'AllowedMethod' => 'PUT',
|
15
16
|
'AllowedOrigin' => url,
|
16
17
|
'AllowedHeader' => '*'
|
data/lib/workarea/version.rb
CHANGED
@@ -46,6 +46,47 @@ module Workarea
|
|
46
46
|
refute(direct_upload.valid?)
|
47
47
|
end
|
48
48
|
|
49
|
+
def test_ensure_cors
|
50
|
+
Workarea.s3.expects(:put_bucket_cors).with(
|
51
|
+
Configuration::S3.bucket,
|
52
|
+
'CORSConfiguration' => [
|
53
|
+
{
|
54
|
+
'ID' => "direct_upload_http://test.host",
|
55
|
+
'AllowedMethod' => 'PUT',
|
56
|
+
'AllowedOrigin' => 'http://test.host',
|
57
|
+
'AllowedHeader' => '*'
|
58
|
+
}
|
59
|
+
]
|
60
|
+
).returns(true)
|
61
|
+
Workarea.s3.expects(:put_bucket_cors).with(
|
62
|
+
Configuration::S3.bucket,
|
63
|
+
'CORSConfiguration' => [
|
64
|
+
{
|
65
|
+
'ID' => "direct_upload_http://localhost:3000",
|
66
|
+
'AllowedMethod' => 'PUT',
|
67
|
+
'AllowedOrigin' => 'http://localhost:3000',
|
68
|
+
'AllowedHeader' => '*'
|
69
|
+
}
|
70
|
+
]
|
71
|
+
).returns(true)
|
72
|
+
Workarea.s3.expects(:put_bucket_cors).with(
|
73
|
+
Configuration::S3.bucket,
|
74
|
+
'CORSConfiguration' => [
|
75
|
+
{
|
76
|
+
'ID' => "direct_upload_https://example.com",
|
77
|
+
'AllowedMethod' => 'PUT',
|
78
|
+
'AllowedOrigin' => 'https://example.com',
|
79
|
+
'AllowedHeader' => '*'
|
80
|
+
}
|
81
|
+
]
|
82
|
+
).returns(true)
|
83
|
+
|
84
|
+
|
85
|
+
assert(DirectUpload.ensure_cors!('http://test.host/admin/content_assets'))
|
86
|
+
assert(DirectUpload.ensure_cors!('http://localhost:3000/admin/content_assets'))
|
87
|
+
assert(DirectUpload.ensure_cors!('https://example.com/admin/direct_uploads'))
|
88
|
+
end
|
89
|
+
|
49
90
|
private
|
50
91
|
|
51
92
|
def upload_file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workarea-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.4.
|
4
|
+
version: 3.4.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Crouse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-09-
|
11
|
+
date: 2019-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|