infopark_cloud_connector 7.0.1 → 7.0.2
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 +8 -8
- data/app/controllers/rails_connector/default_cms_controller.rb +3 -11
- data/app/controllers/rails_connector/objs_controller.rb +9 -7
- data/app/helpers/rails_connector/default_cms_helper.rb +1 -2
- data/app/helpers/rails_connector/default_cms_routing_helper.rb +18 -11
- data/app/helpers/rails_connector/display_helper.rb +3 -15
- data/app/helpers/rails_connector/layout_helper.rb +0 -2
- data/app/helpers/rails_connector/table_of_contents_helper.rb +1 -16
- data/config/ca-bundle.crt +1 -1
- data/config/cms_routes.rb +0 -3
- data/lib/assets/javascripts/infopark_editing.js +252 -182
- data/lib/infopark_cloud_connector.rb +0 -20
- data/lib/rails_connector/basic_obj.rb +5 -35
- data/lib/rails_connector/cms_accessible.rb +4 -71
- data/lib/rails_connector/configuration.rb +0 -9
- data/lib/rails_connector/engine.rb +0 -1
- data/lib/rails_connector/obj_data_from_service.rb +4 -2
- metadata +2 -7
- data/app/helpers/rails_connector/marker_helper.rb +0 -46
- data/app/views/errors/403_forbidden.html.erb +0 -3
- data/config/locales/de.rails_connector.views.yml +0 -6
- data/config/locales/en.rails_connector.views.yml +0 -6
- data/lib/rails_connector/authenticable.rb +0 -30
@@ -1,23 +1,3 @@
|
|
1
|
-
# @api public
|
2
|
-
module ::RailsConnector
|
3
|
-
PLATFORM_CLOUD = :cloud.freeze
|
4
|
-
PLATFORM_FIONA = :fiona.freeze
|
5
|
-
|
6
|
-
# return either <tt>:fiona</tt> or <tt>:cloud</tt> depending on the app's configuration.
|
7
|
-
# @return [Symbol]
|
8
|
-
def self.platform
|
9
|
-
PLATFORM_CLOUD
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.platform_cloud?
|
13
|
-
true
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.platform_fiona?
|
17
|
-
false
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
1
|
require 'rails_connector/core_extensions'
|
22
2
|
require 'rails_connector/rack_middlewares'
|
23
3
|
require "rails_connector/errors"
|
@@ -215,29 +215,6 @@ module RailsConnector
|
|
215
215
|
end
|
216
216
|
end
|
217
217
|
|
218
|
-
def permissions
|
219
|
-
# FIXME permissions
|
220
|
-
@permissions ||= OpenStruct.new({
|
221
|
-
:live => permitted_groups,
|
222
|
-
:read => [],
|
223
|
-
:write => [],
|
224
|
-
:root => [],
|
225
|
-
:create_children => [],
|
226
|
-
})
|
227
|
-
end
|
228
|
-
|
229
|
-
def permitted_for_user?(user)
|
230
|
-
if permitted_groups.blank?
|
231
|
-
true
|
232
|
-
else
|
233
|
-
if user
|
234
|
-
(permitted_groups & user.live_server_groups).any?
|
235
|
-
else
|
236
|
-
false
|
237
|
-
end
|
238
|
-
end
|
239
|
-
end
|
240
|
-
|
241
218
|
# Returns the root {BasicObj Obj}, i.e. the Obj with the path "/"
|
242
219
|
# @return [Obj]
|
243
220
|
# @api public
|
@@ -382,13 +359,6 @@ module RailsConnector
|
|
382
359
|
name
|
383
360
|
end
|
384
361
|
|
385
|
-
# Returns an array with the names of groups that are permitted to access this Obj.
|
386
|
-
# This corresponds to the cms permission "permissionLiveServerRead".
|
387
|
-
def permitted_groups
|
388
|
-
# FIXME permissions not yet implemented in fiona 7
|
389
|
-
[]
|
390
|
-
end
|
391
|
-
|
392
362
|
# Returns true if this object is the root object.
|
393
363
|
# @api public
|
394
364
|
def root?
|
@@ -612,11 +582,6 @@ module RailsConnector
|
|
612
582
|
end
|
613
583
|
end
|
614
584
|
|
615
|
-
def body_data_path
|
616
|
-
# not needed/supported when using cloud connector.
|
617
|
-
nil
|
618
|
-
end
|
619
|
-
|
620
585
|
# returns the content type of the Obj's body for binary Objs.
|
621
586
|
# returns +nil+ for non-binary Objs.
|
622
587
|
# @return [String]
|
@@ -652,6 +617,11 @@ module RailsConnector
|
|
652
617
|
instantiate_widget(widget_id, widget_data) if widget_data
|
653
618
|
end
|
654
619
|
|
620
|
+
# for internal testing purposes only
|
621
|
+
def blob_id
|
622
|
+
find_blob.try(:id)
|
623
|
+
end
|
624
|
+
|
655
625
|
private
|
656
626
|
|
657
627
|
def widget_data_from_pool(widget_id)
|
@@ -16,81 +16,14 @@ module RailsConnector
|
|
16
16
|
@obj = loaded_obj
|
17
17
|
end
|
18
18
|
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
# To require the check for all actions, use this in your controllers:
|
23
|
-
# before_filter :load_object
|
24
|
-
# before_filter :ensure_object_is_permitted
|
25
|
-
def ensure_object_is_permitted
|
26
|
-
unless is_permitted(@obj)
|
27
|
-
@obj = nil
|
28
|
-
render_obj_error(403, "forbidden")
|
29
|
-
return false
|
30
|
-
end
|
31
|
-
return true
|
32
|
-
end
|
33
|
-
|
34
|
-
# This method is called when rendering an error caused by either {ensure_object_is_permitted}
|
35
|
-
# or {ensure_object_is_active} before filter. It renders an error template located in
|
36
|
-
# "errors/*.html.erb" with given HTTP status and content type "text/html" and with no layout.
|
37
|
-
# Overwrite this method to change the error page.
|
38
|
-
# @api public
|
39
|
-
def render_obj_error(status, name)
|
40
|
-
force_html_format
|
41
|
-
render(
|
42
|
-
:template => "errors/#{status}_#{name}",
|
43
|
-
:layout => false,
|
44
|
-
:status => status,
|
45
|
-
:content_type => Mime::HTML
|
46
|
-
)
|
47
|
-
end
|
48
|
-
|
49
|
-
# Enforce "html" as template format.
|
50
|
-
# @api public
|
51
|
-
def force_html_format
|
52
|
-
request.format = :html
|
53
|
-
end
|
54
|
-
|
55
|
-
# Inclusion hook to make is_permitted available as helper method.
|
56
|
-
def self.included(base)
|
57
|
-
base.__send__ :helper_method, :is_permitted
|
58
|
-
end
|
59
|
-
|
60
|
-
# Helper method to check live permissions
|
61
|
-
def is_permitted(obj)
|
62
|
-
obj.permitted_for_user?(current_user)
|
63
|
-
end
|
64
|
-
|
65
|
-
# Filter method which sets the header 'X-Robots-Tag: unavailable_after'
|
66
|
-
# to the valid_until date of the current object.
|
67
|
-
def set_google_expire_header
|
68
|
-
if @obj && (date = @obj.valid_until)
|
69
|
-
headers['X-Robots-Tag: unavailable_after'] = date.rfc822
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
# Deliver the obj's body as response by file or data.
|
74
|
-
# May respond with status 304 if a If-Modified-Since header is found.
|
19
|
+
# Deliver a binary @obj by redirecting to it's `body_data_url`.
|
20
|
+
# Will respond with 404 if the @obj has no blob.
|
75
21
|
# @api public
|
76
22
|
def deliver_file
|
77
23
|
if @obj.body_data_url
|
78
24
|
redirect_to enforce_protocol_from_request(@obj.body_data_url)
|
79
|
-
|
80
|
-
|
81
|
-
mime_type += '; charset=utf-8' if mime_type =~ /^text\//
|
82
|
-
|
83
|
-
if (filepath = @obj.body_data_path).present?
|
84
|
-
send_file(File.expand_path(filepath), {
|
85
|
-
:type => mime_type,
|
86
|
-
:filename => @obj.filename,
|
87
|
-
:disposition => 'inline',
|
88
|
-
})
|
89
|
-
else
|
90
|
-
# generics should send its body, empty files should be delivered as
|
91
|
-
# empty files - and not lead to an application error
|
92
|
-
send_data @obj.body || '', :type => mime_type, :filename => @obj.filename, :disposition => 'inline'
|
93
|
-
end
|
25
|
+
else
|
26
|
+
render text: "Empty Blob", status: 404
|
94
27
|
end
|
95
28
|
end
|
96
29
|
end
|
@@ -135,13 +135,8 @@ module RailsConnector
|
|
135
135
|
cms_api.api_key = value
|
136
136
|
end
|
137
137
|
|
138
|
-
def after_initialize
|
139
|
-
enable_authentication
|
140
|
-
end
|
141
|
-
|
142
138
|
def to_prepare
|
143
139
|
unless Rails.configuration.cache_classes
|
144
|
-
after_initialize
|
145
140
|
NamedLink.reset_cache
|
146
141
|
BasicObj.reset_type_computer!
|
147
142
|
BasicWidget.reset_type_computer!
|
@@ -184,10 +179,6 @@ module RailsConnector
|
|
184
179
|
def cms_api
|
185
180
|
RailsConnector::CmsRestApi.configuration
|
186
181
|
end
|
187
|
-
|
188
|
-
def enable_authentication
|
189
|
-
::ApplicationController.__send__(:include, RailsConnector::Authenticable)
|
190
|
-
end
|
191
182
|
end
|
192
183
|
|
193
184
|
# defaults
|
@@ -8,7 +8,6 @@ require 'rails_connector/configuration'
|
|
8
8
|
module ::RailsConnector
|
9
9
|
class Engine < Rails::Engine
|
10
10
|
config.to_prepare { RailsConnector::Configuration.to_prepare }
|
11
|
-
config.after_initialize { RailsConnector::Configuration.after_initialize }
|
12
11
|
|
13
12
|
# make sure our exceptions cause an adequate error page and http status code
|
14
13
|
config.action_dispatch.rescue_responses.merge!("RailsConnector::ResourceNotFound" => :not_found)
|
@@ -11,7 +11,7 @@ module RailsConnector
|
|
11
11
|
value_and_type = @data[attribute_name]
|
12
12
|
|
13
13
|
if value_and_type.blank?
|
14
|
-
if INTERNAL_KEYS.include?(attribute_name)
|
14
|
+
if INTERNAL_KEYS.include?(attribute_name) || SPECIAL_KEYS.include?(attribute_name)
|
15
15
|
type = type_of_internal(attribute_name)
|
16
16
|
[default_attribute_value(type), type]
|
17
17
|
else
|
@@ -47,7 +47,7 @@ module RailsConnector
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def is_custom_attribute?(attribute_name)
|
50
|
-
!attribute_name.starts_with?('_')
|
50
|
+
!attribute_name.starts_with?('_') && !SPECIAL_KEYS.include?(attribute_name)
|
51
51
|
end
|
52
52
|
|
53
53
|
internal_key_list = %w[
|
@@ -68,6 +68,8 @@ module RailsConnector
|
|
68
68
|
|
69
69
|
INTERNAL_KEYS = Set.new(internal_key_list.map { |name| "_#{name}" } )
|
70
70
|
|
71
|
+
SPECIAL_KEYS = Set.new(%w[ body title blob ])
|
72
|
+
|
71
73
|
end
|
72
74
|
|
73
75
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: infopark_cloud_connector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.0.
|
4
|
+
version: 7.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Infopark AG
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -139,13 +139,11 @@ files:
|
|
139
139
|
- app/helpers/rails_connector/display_helper.rb
|
140
140
|
- app/helpers/rails_connector/editing_helper.rb
|
141
141
|
- app/helpers/rails_connector/layout_helper.rb
|
142
|
-
- app/helpers/rails_connector/marker_helper.rb
|
143
142
|
- app/helpers/rails_connector/table_of_contents_helper.rb
|
144
143
|
- app/helpers/rails_connector/widget_helper.rb
|
145
144
|
- app/models/named_link.rb
|
146
145
|
- app/views/cms/_index.html.erb
|
147
146
|
- app/views/cms/index.html.erb
|
148
|
-
- app/views/errors/403_forbidden.html.erb
|
149
147
|
- app/views/rails_connector/_editing_javascript.html.erb
|
150
148
|
- app/views/rails_connector/objs/create_widget.html.erb
|
151
149
|
- app/views/rails_connector/objs/show_widget.html.erb
|
@@ -154,11 +152,9 @@ files:
|
|
154
152
|
- config/locales/de.rails_connector.errors.yml
|
155
153
|
- config/locales/de.rails_connector.lib.yml
|
156
154
|
- config/locales/de.rails_connector.models.yml
|
157
|
-
- config/locales/de.rails_connector.views.yml
|
158
155
|
- config/locales/en.rails_connector.errors.yml
|
159
156
|
- config/locales/en.rails_connector.lib.yml
|
160
157
|
- config/locales/en.rails_connector.models.yml
|
161
|
-
- config/locales/en.rails_connector.views.yml
|
162
158
|
- config/routes.rb
|
163
159
|
- lib/assets/fonts/infopark_icons-webfont.eot
|
164
160
|
- lib/assets/fonts/infopark_icons-webfont.ttf
|
@@ -177,7 +173,6 @@ files:
|
|
177
173
|
- lib/obj.rb
|
178
174
|
- lib/rails_connector/access_denied.rb
|
179
175
|
- lib/rails_connector/attribute_content.rb
|
180
|
-
- lib/rails_connector/authenticable.rb
|
181
176
|
- lib/rails_connector/backend_not_available.rb
|
182
177
|
- lib/rails_connector/basic_obj.rb
|
183
178
|
- lib/rails_connector/basic_widget.rb
|
@@ -1,46 +0,0 @@
|
|
1
|
-
module RailsConnector
|
2
|
-
|
3
|
-
module MarkerHelper
|
4
|
-
|
5
|
-
def edit_marker(obj, attr, options = {}, &block)
|
6
|
-
if Configuration.editor_interface_enabled?
|
7
|
-
default_value = options.delete(:default_value)
|
8
|
-
|
9
|
-
if block_given?
|
10
|
-
content = block.call(obj, attr)
|
11
|
-
content = default_value || raw(" ") if content.blank?
|
12
|
-
end
|
13
|
-
|
14
|
-
tag_type = options.delete(:tag) || :span
|
15
|
-
content_tag(
|
16
|
-
tag_type,
|
17
|
-
content.to_s,
|
18
|
-
options
|
19
|
-
)
|
20
|
-
else
|
21
|
-
block_given? ? block.call(obj, attr) : nil
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def marker_menu(left=0, top=0, &block)
|
26
|
-
end
|
27
|
-
|
28
|
-
def marker_menu_target(tag_name, options = {}, &block)
|
29
|
-
content_tag(
|
30
|
-
tag_name,
|
31
|
-
capture(&block),
|
32
|
-
options
|
33
|
-
)
|
34
|
-
end
|
35
|
-
|
36
|
-
def include_edit_marker_support
|
37
|
-
end
|
38
|
-
|
39
|
-
def render_marker_code
|
40
|
-
end
|
41
|
-
|
42
|
-
private
|
43
|
-
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module RailsConnector
|
2
|
-
module Authenticable
|
3
|
-
def self.included(mod)
|
4
|
-
%w(logged_in? admin? current_user).each do |method_name|
|
5
|
-
unless instance_method_defined?(mod, method_name)
|
6
|
-
mod.class_eval do
|
7
|
-
private
|
8
|
-
define_method(method_name, InstanceMethods.method(method_name).to_proc)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
mod.send(:helper_method, method_name)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
module InstanceMethods
|
17
|
-
def self.logged_in?; false; end
|
18
|
-
def self.admin?; false; end
|
19
|
-
def self.current_user; nil; end
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def self.instance_method_defined?(mod, method_name)
|
25
|
-
(
|
26
|
-
mod.instance_methods + mod.protected_instance_methods + mod.private_instance_methods
|
27
|
-
).map(&:to_s).include?(method_name)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|