workarea-core 3.4.32 → 3.4.37
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/workarea/payment.rb +1 -6
- data/app/models/workarea/search/admin/pricing_discount.rb +1 -1
- data/app/services/workarea/direct_upload.rb +17 -13
- data/app/workers/workarea/process_import.rb +3 -3
- data/lib/tasks/search.rake +10 -4
- data/lib/workarea/configuration.rb +11 -0
- data/lib/workarea/core.rb +2 -0
- data/lib/workarea/core/engine.rb +3 -4
- data/lib/workarea/ext/jbuilder/jbuilder_cache.rb +29 -0
- data/lib/workarea/queues_pauser.rb +26 -0
- data/lib/workarea/version.rb +1 -1
- data/test/services/workarea/direct_upload_test.rb +20 -3
- data/test/workers/workarea/process_import_test.rb +6 -0
- data/workarea-core.gemspec +4 -4
- metadata +12 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b92c8bfc7ed302168dc43867258156fc8022d861c8888d267509f06397be80a5
|
4
|
+
data.tar.gz: 48aaafb4e4ce343b8c5f86014531a86392d29a13042f8daf291d7be116fe27f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 359c095f749b941148ef804d7534010a1e2b489e9dd3a6aef49c5ecffb59ac6a9c5cc9afa212b076bd21a40c64ff614414e812f9a432d9d0f6306fbd060b19a2
|
7
|
+
data.tar.gz: 1b8ac9254951ed01039219df5548b13655441785f99a3e119625b9964e5eeb6a5fde8772dd45d206a29f0b605416f78d6dbcbd745356327276086619701ce0fa
|
@@ -80,12 +80,7 @@ module Workarea
|
|
80
80
|
build_credit_card unless credit_card
|
81
81
|
credit_card.saved_card_id = nil
|
82
82
|
credit_card.attributes = attrs.slice(
|
83
|
-
|
84
|
-
:year,
|
85
|
-
:saved_card_id,
|
86
|
-
:number,
|
87
|
-
:cvv,
|
88
|
-
:amount
|
83
|
+
*Workarea.config.credit_card_attributes
|
89
84
|
)
|
90
85
|
save
|
91
86
|
end
|
@@ -6,22 +6,26 @@ module Workarea
|
|
6
6
|
uri = URI.parse(request_url)
|
7
7
|
url = "#{uri.scheme}://#{uri.host}"
|
8
8
|
url += ":#{uri.port}" unless uri.port.in? [80, 443]
|
9
|
+
id = "direct_upload_#{url}"
|
9
10
|
|
10
|
-
|
11
|
-
|
11
|
+
response = begin
|
12
|
+
Workarea.s3.get_bucket_cors(Configuration::S3.bucket)
|
13
|
+
rescue Excon::Error::NotFound
|
14
|
+
Excon::Response.new(body: { 'CORSConfiguration' => [] })
|
15
|
+
end
|
12
16
|
|
13
|
-
response = Workarea.s3.get_bucket_cors(Configuration::S3.bucket)
|
14
17
|
cors = response.data[:body]
|
15
|
-
|
16
|
-
|
17
|
-
'
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
18
|
+
|
19
|
+
unless cors['CORSConfiguration'].pluck('ID').include?(id)
|
20
|
+
cors['CORSConfiguration'] << {
|
21
|
+
'ID' => id,
|
22
|
+
'AllowedMethod' => 'PUT',
|
23
|
+
'AllowedOrigin' => url,
|
24
|
+
'AllowedHeader' => '*'
|
25
|
+
}
|
26
|
+
|
27
|
+
Workarea.s3.put_bucket_cors(Configuration::S3.bucket, cors)
|
28
|
+
end
|
25
29
|
end
|
26
30
|
|
27
31
|
attr_reader :type, :filename
|
@@ -17,11 +17,11 @@ module Workarea
|
|
17
17
|
import.process!
|
18
18
|
|
19
19
|
ensure
|
20
|
-
if import
|
20
|
+
if import&.error?
|
21
21
|
Admin::DataFileMailer.import_error(id).deliver_now
|
22
|
-
elsif import
|
22
|
+
elsif import&.failure?
|
23
23
|
Admin::DataFileMailer.import_failure(id).deliver_now
|
24
|
-
|
24
|
+
elsif import.present?
|
25
25
|
Admin::DataFileMailer.import(id).deliver_now
|
26
26
|
end
|
27
27
|
end
|
data/lib/tasks/search.rake
CHANGED
@@ -12,7 +12,9 @@ namespace :workarea do
|
|
12
12
|
require 'sidekiq/testing/inline' unless ENV['INLINE'] == 'false'
|
13
13
|
puts 'Indexing admin...'
|
14
14
|
|
15
|
-
Workarea::
|
15
|
+
Workarea::QueuesPauser.with_paused_queues do
|
16
|
+
Workarea::Search::Admin.reset_indexes!
|
17
|
+
end
|
16
18
|
|
17
19
|
Mongoid.models.each do |klass|
|
18
20
|
next unless Workarea::Search::Admin.for(klass.first).present?
|
@@ -32,8 +34,10 @@ namespace :workarea do
|
|
32
34
|
require 'sidekiq/testing/inline' unless ENV['INLINE'] == 'false'
|
33
35
|
puts 'Indexing storefront...'
|
34
36
|
|
35
|
-
Workarea::
|
36
|
-
|
37
|
+
Workarea::QueuesPauser.with_paused_queues do
|
38
|
+
Workarea::Search::Storefront.reset_indexes!
|
39
|
+
Workarea::Search::Storefront.ensure_dynamic_mappings
|
40
|
+
end
|
37
41
|
|
38
42
|
# This code finds all unique filters for products so we can index a sample
|
39
43
|
# product for each to ensure the dynamic mappings get created.
|
@@ -79,7 +83,9 @@ namespace :workarea do
|
|
79
83
|
require 'sidekiq/testing/inline' unless ENV['INLINE'] == 'false'
|
80
84
|
puts 'Indexing help...'
|
81
85
|
|
82
|
-
Workarea::
|
86
|
+
Workarea::QueuesPauser.with_paused_queues do
|
87
|
+
Workarea::Search::Help.reset_indexes!
|
88
|
+
end
|
83
89
|
|
84
90
|
Workarea::Help::Article.all.each_by(100) do |help_article|
|
85
91
|
Workarea::Search::Help.new(help_article).save
|
@@ -1289,6 +1289,17 @@ module Workarea
|
|
1289
1289
|
|
1290
1290
|
# The number of results that will show per-type in the admin jump to
|
1291
1291
|
config.jump_to_results_per_type = 5
|
1292
|
+
|
1293
|
+
# Attributes that will be sliced out of params and persisted on
|
1294
|
+
# the credit card tender during checkout.
|
1295
|
+
config.credit_card_attributes = %i[
|
1296
|
+
month
|
1297
|
+
year
|
1298
|
+
saved_card_id
|
1299
|
+
number
|
1300
|
+
cvv
|
1301
|
+
amount
|
1302
|
+
]
|
1292
1303
|
end
|
1293
1304
|
end
|
1294
1305
|
end
|
data/lib/workarea/core.rb
CHANGED
@@ -139,6 +139,7 @@ require 'workarea/ext/mongoid/audit_log_entry.decorator'
|
|
139
139
|
require 'workarea/ext/mongoid/find_ordered'
|
140
140
|
require 'workarea/ext/sprockets/ruby_processor'
|
141
141
|
require 'workarea/ext/jbuilder/jbuilder_append_partials'
|
142
|
+
require 'workarea/ext/jbuilder/jbuilder_cache'
|
142
143
|
|
143
144
|
if Rails.env.development?
|
144
145
|
require 'workarea/ext/freedom_patches/routes_reloader'
|
@@ -208,6 +209,7 @@ require 'workarea/cache'
|
|
208
209
|
require 'workarea/scheduled_jobs'
|
209
210
|
require 'workarea/string_id'
|
210
211
|
require 'workarea/mail_interceptor'
|
212
|
+
require 'workarea/queues_pauser'
|
211
213
|
|
212
214
|
#
|
213
215
|
# Engines
|
data/lib/workarea/core/engine.rb
CHANGED
@@ -118,13 +118,12 @@ db.getSiblingDB("admin").runCommand( { setParameter: 1, notablescan: 0 } )
|
|
118
118
|
**************************************************
|
119
119
|
⛔️ WARNING: Dragonfly is configured to use the filesystem.
|
120
120
|
|
121
|
-
This means all
|
121
|
+
This means all Dragonfly assets (assets, product images, etc.) will be stored
|
122
122
|
locally and not accessible to all servers within your environment.
|
123
123
|
|
124
124
|
We recommend using S3 when running in a live environment by setting
|
125
|
-
WORKAREA_S3_REGION and WORKAREA_S3_BUCKET_NAME in your environment variables
|
126
|
-
|
127
|
-
are present.
|
125
|
+
WORKAREA_S3_REGION and WORKAREA_S3_BUCKET_NAME in your environment variables,
|
126
|
+
and setting `Workarea.config.asset_store = :s3` in an initializer.
|
128
127
|
**************************************************
|
129
128
|
eos
|
130
129
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
decorate JbuilderTemplate, with: :workarea do
|
2
|
+
def _cache_fragment_for(*)
|
3
|
+
return yield if workarea_admin?
|
4
|
+
|
5
|
+
super
|
6
|
+
end
|
7
|
+
|
8
|
+
def _cache_key(*)
|
9
|
+
super.tap do |result|
|
10
|
+
result << workarea_cache_varies if workarea_cache_varies.present?
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def workarea_admin?
|
17
|
+
@context&.controller&.current_user&.admin?
|
18
|
+
rescue ::RuntimeError
|
19
|
+
false
|
20
|
+
end
|
21
|
+
|
22
|
+
def workarea_cache_varies
|
23
|
+
workarea_request_env['workarea.cache_varies']
|
24
|
+
end
|
25
|
+
|
26
|
+
def workarea_request_env
|
27
|
+
@context.controller.request.env || {}
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Workarea
|
2
|
+
module QueuesPauser
|
3
|
+
extend self
|
4
|
+
|
5
|
+
def pause_queues!
|
6
|
+
pauser = Sidekiq::Throttled::QueuesPauser.instance
|
7
|
+
queues.each { |queue| pauser.pause!(queue) }
|
8
|
+
end
|
9
|
+
|
10
|
+
def resume_queues!
|
11
|
+
pauser = Sidekiq::Throttled::QueuesPauser.instance
|
12
|
+
queues.each { |queue| pauser.resume!(queue) }
|
13
|
+
end
|
14
|
+
|
15
|
+
def with_paused_queues(&block)
|
16
|
+
pause_queues!
|
17
|
+
yield
|
18
|
+
ensure
|
19
|
+
resume_queues!
|
20
|
+
end
|
21
|
+
|
22
|
+
def queues
|
23
|
+
Configuration::Sidekiq.queues
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/workarea/version.rb
CHANGED
@@ -108,11 +108,28 @@ module Workarea
|
|
108
108
|
).returns(true)
|
109
109
|
|
110
110
|
assert(DirectUpload.ensure_cors!('http://test.host/admin/content_assets'))
|
111
|
-
assert_equal('true', Workarea.redis.get('cors_http_test_host'))
|
112
111
|
assert(DirectUpload.ensure_cors!('http://localhost:3000/admin/content_assets'))
|
113
|
-
assert_equal('true', Workarea.redis.get('cors_http_localhost_3000'))
|
114
112
|
assert(DirectUpload.ensure_cors!('https://example.com/admin/direct_uploads'))
|
115
|
-
|
113
|
+
end
|
114
|
+
|
115
|
+
def test_ensure_cors_with_no_existing_configuration
|
116
|
+
Workarea.s3.expects(:get_bucket_cors)
|
117
|
+
.raises(Excon::Errors::NotFound.new('CORS configuration does not exist'))
|
118
|
+
|
119
|
+
|
120
|
+
Workarea.s3.expects(:put_bucket_cors).with(
|
121
|
+
Configuration::S3.bucket,
|
122
|
+
'CORSConfiguration' => [
|
123
|
+
{
|
124
|
+
'ID' => "direct_upload_http://test.host",
|
125
|
+
'AllowedMethod' => 'PUT',
|
126
|
+
'AllowedOrigin' => 'http://test.host',
|
127
|
+
'AllowedHeader' => '*'
|
128
|
+
}
|
129
|
+
]
|
130
|
+
).returns(true)
|
131
|
+
|
132
|
+
assert(DirectUpload.ensure_cors!('http://test.host/admin/content_assets'))
|
116
133
|
end
|
117
134
|
|
118
135
|
private
|
data/workarea-core.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_dependency 'mongoid-tree', '~> 2.1.0'
|
25
25
|
s.add_dependency 'mongoid-sample', '~> 0.1.0'
|
26
26
|
s.add_dependency 'elasticsearch', '~> 5.0.1'
|
27
|
-
s.add_dependency 'kaminari', '~>
|
27
|
+
s.add_dependency 'kaminari', '~> 1.2.1'
|
28
28
|
s.add_dependency 'kaminari-mongoid', '~> 0.1.2'
|
29
29
|
s.add_dependency 'activemerchant', '~> 1.52'
|
30
30
|
s.add_dependency 'dragonfly', '~> 1.1.2'
|
@@ -32,7 +32,7 @@ Gem::Specification.new do |s|
|
|
32
32
|
s.add_dependency 'sidekiq-cron', '~> 0.6.3'
|
33
33
|
s.add_dependency 'sidekiq-unique-jobs', '~> 6.0.6'
|
34
34
|
s.add_dependency 'sidekiq-throttled', '~> 0.8.2'
|
35
|
-
s.add_dependency 'geocoder', '~> 1.
|
35
|
+
s.add_dependency 'geocoder', '~> 1.6.3'
|
36
36
|
s.add_dependency 'redis-rails', '~> 5.0.0'
|
37
37
|
s.add_dependency 'redis-rack-cache', '~> 2.2.0'
|
38
38
|
s.add_dependency 'easymon', '~> 1.4.0'
|
@@ -65,7 +65,7 @@ Gem::Specification.new do |s|
|
|
65
65
|
s.add_dependency 'chart-horizontalbar-rails', '~> 1.0.4' # TODO remove v4
|
66
66
|
s.add_dependency 'select2-rails', '~> 4.0.3'
|
67
67
|
s.add_dependency 'wysihtml-rails', '~> 0.6.0.beta2'
|
68
|
-
s.add_dependency 'rack-attack', '~>
|
68
|
+
s.add_dependency 'rack-attack', '~> 6.3.1'
|
69
69
|
s.add_dependency 'jquery-livetype-rails', '~> 0.1.0' # TODO remove v4
|
70
70
|
s.add_dependency 'redcarpet', '~> 3.4.0'
|
71
71
|
s.add_dependency 'jquery-unique-clone-rails', '~> 1.0.0'
|
@@ -92,7 +92,7 @@ Gem::Specification.new do |s|
|
|
92
92
|
s.add_dependency 'logstasher', '~> 1.2.2'
|
93
93
|
s.add_dependency 'chartkick', '~> 3.3.0'
|
94
94
|
s.add_dependency 'puma', '>= 4.3.1'
|
95
|
-
s.add_dependency 'rack' , '>= 2.
|
95
|
+
s.add_dependency 'rack' , '>= 2.1.4'
|
96
96
|
|
97
97
|
# HACK for vendoring active_shipping
|
98
98
|
s.add_dependency 'active_utils', '~> 3.3.1'
|
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.37
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Crouse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -156,14 +156,14 @@ dependencies:
|
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
159
|
+
version: 1.2.1
|
160
160
|
type: :runtime
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
166
|
+
version: 1.2.1
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: kaminari-mongoid
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -268,14 +268,14 @@ dependencies:
|
|
268
268
|
requirements:
|
269
269
|
- - "~>"
|
270
270
|
- !ruby/object:Gem::Version
|
271
|
-
version: 1.
|
271
|
+
version: 1.6.3
|
272
272
|
type: :runtime
|
273
273
|
prerelease: false
|
274
274
|
version_requirements: !ruby/object:Gem::Requirement
|
275
275
|
requirements:
|
276
276
|
- - "~>"
|
277
277
|
- !ruby/object:Gem::Version
|
278
|
-
version: 1.
|
278
|
+
version: 1.6.3
|
279
279
|
- !ruby/object:Gem::Dependency
|
280
280
|
name: redis-rails
|
281
281
|
requirement: !ruby/object:Gem::Requirement
|
@@ -730,14 +730,14 @@ dependencies:
|
|
730
730
|
requirements:
|
731
731
|
- - "~>"
|
732
732
|
- !ruby/object:Gem::Version
|
733
|
-
version:
|
733
|
+
version: 6.3.1
|
734
734
|
type: :runtime
|
735
735
|
prerelease: false
|
736
736
|
version_requirements: !ruby/object:Gem::Requirement
|
737
737
|
requirements:
|
738
738
|
- - "~>"
|
739
739
|
- !ruby/object:Gem::Version
|
740
|
-
version:
|
740
|
+
version: 6.3.1
|
741
741
|
- !ruby/object:Gem::Dependency
|
742
742
|
name: jquery-livetype-rails
|
743
743
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1114,14 +1114,14 @@ dependencies:
|
|
1114
1114
|
requirements:
|
1115
1115
|
- - ">="
|
1116
1116
|
- !ruby/object:Gem::Version
|
1117
|
-
version: 2.
|
1117
|
+
version: 2.1.4
|
1118
1118
|
type: :runtime
|
1119
1119
|
prerelease: false
|
1120
1120
|
version_requirements: !ruby/object:Gem::Requirement
|
1121
1121
|
requirements:
|
1122
1122
|
- - ">="
|
1123
1123
|
- !ruby/object:Gem::Version
|
1124
|
-
version: 2.
|
1124
|
+
version: 2.1.4
|
1125
1125
|
- !ruby/object:Gem::Dependency
|
1126
1126
|
name: active_utils
|
1127
1127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1864,6 +1864,7 @@ files:
|
|
1864
1864
|
- lib/workarea/ext/freedom_patches/string.rb
|
1865
1865
|
- lib/workarea/ext/freedom_patches/uri.rb
|
1866
1866
|
- lib/workarea/ext/jbuilder/jbuilder_append_partials.rb
|
1867
|
+
- lib/workarea/ext/jbuilder/jbuilder_cache.rb
|
1867
1868
|
- lib/workarea/ext/mongoid/audit_log_entry.decorator
|
1868
1869
|
- lib/workarea/ext/mongoid/each_by.rb
|
1869
1870
|
- lib/workarea/ext/mongoid/error.rb
|
@@ -1895,6 +1896,7 @@ files:
|
|
1895
1896
|
- lib/workarea/ping_home_base.rb
|
1896
1897
|
- lib/workarea/plugin.rb
|
1897
1898
|
- lib/workarea/plugin/asset_appends_helper.rb
|
1899
|
+
- lib/workarea/queues_pauser.rb
|
1898
1900
|
- lib/workarea/robots.rb
|
1899
1901
|
- lib/workarea/routes_constraints/redirect.rb
|
1900
1902
|
- lib/workarea/routes_constraints/super_admin.rb
|