scrivito_sdk 1.17.0.rc3 → 1.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/cms/scrivito/application_error.rb +13 -0
- data/app/cms/scrivito/backend/base_index.rb +49 -0
- data/app/cms/scrivito/backend/index.rb +0 -41
- data/app/cms/scrivito/backend/parent_path_index.rb +1 -1
- data/app/cms/scrivito/backend/path_index.rb +1 -1
- data/app/cms/scrivito/backend/permalink_index.rb +1 -1
- data/app/cms/scrivito/cms_rest_api.rb +8 -3
- data/app/cms/scrivito/controller_actions.rb +1 -1
- data/app/cms/scrivito/generator_helper.rb +5 -3
- data/app/cms/scrivito/internal_error.rb +8 -0
- data/app/cms/scrivito/layout_tags.rb +1 -1
- data/app/cms/scrivito/model_library.rb +1 -1
- data/app/cms/scrivito/obj_class_not_found.rb +7 -0
- data/app/cms/scrivito/resource_not_found.rb +14 -0
- data/app/cms/scrivito/scrivito_error.rb +7 -0
- data/app/cms/scrivito/sdk_engine.rb +1 -1
- data/app/cms/scrivito/transformation_definition_error.rb +7 -0
- data/app/cms/scrivito/transformation_error.rb +13 -0
- data/app/cms/scrivito/transformation_source_error.rb +7 -0
- data/app/controllers/scrivito/binary_redirect_controller.rb +2 -2
- data/app/controllers/scrivito/ui_controller.rb +1 -1
- data/config/ca-bundle.crt +731 -820
- data/lib/assets/javascripts/scrivito.js +1 -1
- data/lib/assets/javascripts/scrivito_ui_redirect.js +1 -1
- data/lib/assets/javascripts/scrivito_with_js_sdk.js +1 -1
- data/lib/assets/stylesheets/scrivito_editing.css +3 -4
- data/lib/generators/scrivito/page/page_generator.rb +1 -1
- data/lib/generators/scrivito/page/templates/model.erb +1 -1
- data/lib/generators/scrivito/widget/templates/model.erb +1 -1
- data/lib/generators/scrivito/widget/widget_generator.rb +1 -1
- metadata +34 -12
- data/app/cms/scrivito/errors.rb +0 -55
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d823e374d12c9c33806410fbde2aaf4e8e5817fc27efabeaa5fdc2b22648b64
|
4
|
+
data.tar.gz: ae4f48a45f0ba8ea9ce22c743e1775b76f4eff6b9b95560654df4a47dea4d4be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de8a11c3ac17c526368517dc94846b0b8e38bed4c49a344ad85e6263dcd0da0c4b3890e71dade2809094d73eab354699bff90f653ec31eabfd7f0887c32bf6aa
|
7
|
+
data.tar.gz: 2535b4d02cf798a996362113bdac0288c8d2e349d2dbeb0362caf7d733d058e6808fb9417d99196d266d56d4017c9142b4abec4614fdabb235bb89a2e042e771
|
data/README.md
CHANGED
@@ -12,7 +12,7 @@ of concepts and APIs, tutorials, and release notes.
|
|
12
12
|
|
13
13
|
## License
|
14
14
|
|
15
|
-
Copyright (c) 2009 -
|
15
|
+
Copyright (c) 2009 - 2021 JustRelate Group GmbH (https://www.justrelate.com)
|
16
16
|
|
17
17
|
This software can be used and modified under the LGPL-3.0. Please refer to
|
18
18
|
http://www.gnu.org/licenses/lgpl-3.0.html for the license text.
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Scrivito
|
2
|
+
module Backend
|
3
|
+
|
4
|
+
# Abstract Base for Index Implementations
|
5
|
+
module BaseIndex
|
6
|
+
def id
|
7
|
+
abstract_base_method
|
8
|
+
end
|
9
|
+
|
10
|
+
def update(key, cached_result, change_index)
|
11
|
+
updated = Set.new(cached_result)
|
12
|
+
|
13
|
+
change_index.each do |id, data|
|
14
|
+
value = extract_update_value_from_data(data)
|
15
|
+
|
16
|
+
if value == key
|
17
|
+
updated.add(id)
|
18
|
+
else
|
19
|
+
updated.delete(id)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
updated.to_a
|
24
|
+
end
|
25
|
+
|
26
|
+
def extract_update_value_from_data(data)
|
27
|
+
abstract_base_method
|
28
|
+
end
|
29
|
+
|
30
|
+
def group_by(keys, obj_datas)
|
31
|
+
return [obj_datas] if keys.length == 1
|
32
|
+
|
33
|
+
group_by_multiple(keys, obj_datas)
|
34
|
+
end
|
35
|
+
|
36
|
+
def group_by_multiple(parent_paths, obj_datas)
|
37
|
+
abstract_base_method
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def abstract_base_method
|
43
|
+
raise Scrivito::InternalError, "not implemented"
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
module Scrivito
|
2
2
|
module Backend
|
3
3
|
|
4
|
-
# Abstract Base for Index Implementations
|
5
4
|
module Index
|
6
5
|
|
7
6
|
IMPLEMENTATIONS = [
|
@@ -19,46 +18,6 @@ module Index
|
|
19
18
|
raise Scrivito::InternalError, "unknown index #{name}"
|
20
19
|
end
|
21
20
|
|
22
|
-
def id
|
23
|
-
abstract_base_method
|
24
|
-
end
|
25
|
-
|
26
|
-
def update(key, cached_result, change_index)
|
27
|
-
updated = Set.new(cached_result)
|
28
|
-
|
29
|
-
change_index.each do |id, data|
|
30
|
-
value = extract_update_value_from_data(data)
|
31
|
-
|
32
|
-
if value == key
|
33
|
-
updated.add(id)
|
34
|
-
else
|
35
|
-
updated.delete(id)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
updated.to_a
|
40
|
-
end
|
41
|
-
|
42
|
-
def extract_update_value_from_data(data)
|
43
|
-
abstract_base_method
|
44
|
-
end
|
45
|
-
|
46
|
-
def group_by(keys, obj_datas)
|
47
|
-
return [obj_datas] if keys.length == 1
|
48
|
-
|
49
|
-
group_by_multiple(keys, obj_datas)
|
50
|
-
end
|
51
|
-
|
52
|
-
def group_by_multiple(parent_paths, obj_datas)
|
53
|
-
abstract_base_method
|
54
|
-
end
|
55
|
-
|
56
|
-
private
|
57
|
-
|
58
|
-
def abstract_base_method
|
59
|
-
raise Scrivito::InternalError, "not implemented"
|
60
|
-
end
|
61
|
-
|
62
21
|
end
|
63
22
|
|
64
23
|
end
|
@@ -136,21 +136,26 @@ module Scrivito
|
|
136
136
|
end
|
137
137
|
|
138
138
|
private_class_method def self.handle_response(resource_path, response)
|
139
|
-
http_code = response.code.to_i
|
140
139
|
if response.code.start_with?('2')
|
141
140
|
JSON.parse(response.body)
|
142
141
|
elsif response.code == '403'
|
143
142
|
raise AccessDenied.new(response.body)
|
144
143
|
else
|
144
|
+
http_code = response.code.to_i
|
145
145
|
begin
|
146
|
-
error_body =
|
146
|
+
error_body =
|
147
|
+
if http_code == 404 && response.body == "Not Found"
|
148
|
+
{'error' => response.body}
|
149
|
+
else
|
150
|
+
JSON.parse(response.body)
|
151
|
+
end
|
147
152
|
specific_output = error_body['error']
|
148
153
|
|
149
154
|
if response.code.start_with?('4')
|
150
155
|
backend_code = error_body['code']
|
151
156
|
raise ClientError.new(specific_output,
|
152
157
|
http_code: http_code, backend_code: backend_code)
|
153
|
-
elsif
|
158
|
+
elsif http_code == 500 && specific_output
|
154
159
|
raise BackendError.new(specific_output, http_code)
|
155
160
|
else # 3xx and >500 are treated as NetworkErrors
|
156
161
|
raise NetworkError.new(response.body, http_code)
|
@@ -164,7 +164,7 @@ module ControllerActions
|
|
164
164
|
def deliver_file
|
165
165
|
if binary = @obj.binary
|
166
166
|
binary_routing = BinaryRouting.new(request, scrivito_engine)
|
167
|
-
redirect_to binary_routing.resolved_binary_url(binary)
|
167
|
+
redirect_to binary_routing.resolved_binary_url(binary), allow_other_host: true
|
168
168
|
else
|
169
169
|
render plain: 'Empty Blob', status: 404
|
170
170
|
end
|
@@ -1,10 +1,12 @@
|
|
1
1
|
module Scrivito
|
2
2
|
module GeneratorHelper
|
3
3
|
def self.attribute_definition(arg)
|
4
|
-
|
5
|
-
|
4
|
+
name, type = arg.to_s.split(":")
|
5
|
+
|
6
|
+
if %w(enum multienum).include?(type)
|
7
|
+
"attribute :#{name}, :#{type}, values: []"
|
6
8
|
else
|
7
|
-
"attribute :#{
|
9
|
+
"attribute :#{name}, :#{type}"
|
8
10
|
end
|
9
11
|
end
|
10
12
|
end
|
@@ -17,7 +17,7 @@ class LayoutTags < Struct.new(:view)
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def generator_meta_tag
|
20
|
-
content = 'Scrivito by
|
20
|
+
content = 'Scrivito by JustRelate Group GmbH (scrivito.com)'
|
21
21
|
content << "; Version #{GemInfo.version}" if view.scrivito_user
|
22
22
|
view.tag(:meta, name: 'generator', content: content)
|
23
23
|
end
|
@@ -114,7 +114,7 @@ class ModelLibrary
|
|
114
114
|
Dir["#{path}/**/*.rb"].sort.each do |file_path|
|
115
115
|
begin
|
116
116
|
require_dependency(file_path)
|
117
|
-
rescue TypeError => e
|
117
|
+
rescue TypeError, Zeitwerk::NameError => e
|
118
118
|
raise e if file_path.starts_with?(Rails.root.to_s)
|
119
119
|
end
|
120
120
|
end
|
@@ -2,7 +2,7 @@ module Scrivito
|
|
2
2
|
class BinaryRedirectController < ActionController::Base
|
3
3
|
def to_binary
|
4
4
|
binary = BinaryParamVerifier.verify(params[:encrypted_params])
|
5
|
-
redirect_to BinaryRewrite.call(request, binary.url), status: 301
|
5
|
+
redirect_to BinaryRewrite.call(request, binary.url), status: 301, allow_other_host: true
|
6
6
|
rescue BinaryParamVerifier::InvalidSignature
|
7
7
|
head :precondition_failed
|
8
8
|
rescue TransformationSourceError => error
|
@@ -15,7 +15,7 @@ module Scrivito
|
|
15
15
|
private
|
16
16
|
|
17
17
|
def render_error(error_name)
|
18
|
-
redirect_to view_context.image_path("scrivito/#{error_name}.png")
|
18
|
+
redirect_to view_context.image_path("scrivito/#{error_name}.png"), allow_other_host: true
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|