infopark_rails_connector 6.9.2.1.125136549 → 6.9.3.1.36404185
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.
- metadata +3 -26
- data/app/helpers/rails_connector/display_helper.rb +0 -126
- data/config/ca-bundle.crt +0 -3509
- data/lib/generators/rails_connector/install/install_generator.rb +0 -37
- data/lib/generators/rails_connector/install/templates/app/models/obj.rb.erb +0 -5
- data/lib/generators/rails_connector/install/templates/initializers/rails_connector.rb +0 -2
- data/lib/generators/rails_connector/install/templates/local/configuration.rb +0 -2
- data/lib/rails_connector/configuration.rb +0 -247
@@ -1,37 +0,0 @@
|
|
1
|
-
module RailsConnector
|
2
|
-
module Generators
|
3
|
-
class InstallGenerator < Rails::Generators::Base
|
4
|
-
desc "Copy Infopark Rails Connector files to your application."
|
5
|
-
|
6
|
-
# Normally, you'd just call 'source_root' as a class method from here,
|
7
|
-
# but we need to glob the dir ourselves. Hence our own method.
|
8
|
-
def self.source_root
|
9
|
-
@source_root ||= File.expand_path('../templates', __FILE__)
|
10
|
-
end
|
11
|
-
|
12
|
-
def install_configuration
|
13
|
-
copy_file "initializers/rails_connector.rb", "config/initializers/rails_connector.rb"
|
14
|
-
template 'app/models/obj.rb.erb', 'app/models/obj.rb'
|
15
|
-
copy_file "local/configuration.rb", "config/local/configuration.rb"
|
16
|
-
end
|
17
|
-
|
18
|
-
def append_asset_manifests
|
19
|
-
append_file("app/assets/javascripts/application.js", "//= require infopark_rails_connector")
|
20
|
-
gsub_file("app/assets/stylesheets/application.css", "*= require_tree .",
|
21
|
-
"*= require_tree .\n *= require infopark_rails_connector")
|
22
|
-
end
|
23
|
-
|
24
|
-
def remove_public_index_html
|
25
|
-
remove_file "public/index.html"
|
26
|
-
remove_file "app/assets/images/rails.png"
|
27
|
-
end
|
28
|
-
|
29
|
-
def patch_default_application_layout
|
30
|
-
gsub_file("app/views/layouts/application.html.erb", %r{</head>},
|
31
|
-
"<%= rails_connector_header_tags %>\n</head>")
|
32
|
-
gsub_file("app/views/layouts/application.html.erb", %r{</body>},
|
33
|
-
"<%= rails_connector_after_content_tags %>\n</body>")
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,247 +0,0 @@
|
|
1
|
-
require "helpful_configuration"
|
2
|
-
require 'rails_connector/cms_base_model' if RailsConnector.platform_fiona?
|
3
|
-
require "rails_connector/blob"
|
4
|
-
|
5
|
-
module RailsConnector
|
6
|
-
|
7
|
-
# @api public
|
8
|
-
class Configuration
|
9
|
-
# @api public
|
10
|
-
DEFAULT_MODE = :live
|
11
|
-
|
12
|
-
# Default fields which the {DefaultUserController} will store in the session.
|
13
|
-
DEFAULT_STORE_USER_ATTRS_IN_SESSION = [:login, :first_name, :last_name, :email, :id]
|
14
|
-
|
15
|
-
#
|
16
|
-
# Default path of a CA certification file in PEM format.
|
17
|
-
#
|
18
|
-
# @api public
|
19
|
-
DEFAULT_CA_FILE = File.expand_path('../../../config/ca-bundle.crt', __FILE__)
|
20
|
-
|
21
|
-
class << self
|
22
|
-
|
23
|
-
# there are three available modes for the rails connector:
|
24
|
-
# <tt>live</tt> (show released contents only),
|
25
|
-
# <tt>preview</tt> (show edited contents)
|
26
|
-
# <tt>editor</tt> (show edited contents and editor interface (e.g. edit markers))
|
27
|
-
# Default mode is <tt>live</tt>.
|
28
|
-
# @api public
|
29
|
-
attr_accessor :mode
|
30
|
-
|
31
|
-
# default options for {SearchRequest}
|
32
|
-
attr_writer :search_options
|
33
|
-
|
34
|
-
# define a non-default blob cache dir.
|
35
|
-
# +fiona connector+ only. has no effect when used with the +cloud connector+.
|
36
|
-
# @api public
|
37
|
-
attr_accessor :blob_cache_dir
|
38
|
-
|
39
|
-
# Configuration for Content Read Service API.
|
40
|
-
# @api public
|
41
|
-
attr_reader :content_service
|
42
|
-
|
43
|
-
# Determine if current visitor is permitted to edit content.
|
44
|
-
attr_accessor :editing_auth_callback
|
45
|
-
|
46
|
-
# Configure a callback to be invoked when the rails connector determines,
|
47
|
-
# if current visitor is permitted to edit content.
|
48
|
-
# Default is <code>false</code>.
|
49
|
-
#
|
50
|
-
# Example Usage:
|
51
|
-
# RailsConnector::Configuation.editing_auth do |env|
|
52
|
-
# request = Rack::Request.new(env)
|
53
|
-
# # return truey if current visitor is permitted to edit content, falsy otherwise
|
54
|
-
# end
|
55
|
-
# @api public
|
56
|
-
def editing_auth(&block)
|
57
|
-
if block.respond_to?(:arity) && block.arity == 1
|
58
|
-
self.editing_auth_callback = block
|
59
|
-
else
|
60
|
-
raise ArgumentError, 'editing_auth should have only one attribute!'
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
# Gets path of a CA certification file in PEM format.
|
65
|
-
# @api public
|
66
|
-
attr_reader :ca_file
|
67
|
-
|
68
|
-
# Sets path of a CA certification file in PEM format.
|
69
|
-
# The file can contain several CA certificates.
|
70
|
-
# Certifications will be used for endpoint peer verification of various Infopark services
|
71
|
-
# e.g. Content Read Service.
|
72
|
-
# @api public
|
73
|
-
def ca_file=(path)
|
74
|
-
File.read(path) if path # Try to read the given file and fail if it doesn't exist or is not readable.
|
75
|
-
@ca_file = path
|
76
|
-
end
|
77
|
-
|
78
|
-
# default options for {SearchRequest}
|
79
|
-
def search_options
|
80
|
-
@search_options || local_config_file["search"].symbolize_keys
|
81
|
-
end
|
82
|
-
|
83
|
-
# @api public
|
84
|
-
def mode=(new_mode)
|
85
|
-
new_mode = new_mode.to_sym
|
86
|
-
raise ArgumentError, "Unknown Mode #{new_mode}" unless [:editor, :preview, :live].include?(new_mode)
|
87
|
-
@mode = new_mode
|
88
|
-
end
|
89
|
-
|
90
|
-
# there are three available modes for the rails connector:
|
91
|
-
# <tt>live</tt> (show released contents only),
|
92
|
-
# <tt>preview</tt> (show edited contents)
|
93
|
-
# <tt>editor</tt> (show edited contents and editor interface (e.g. edit markers))
|
94
|
-
# Default mode is <tt>live</tt>.
|
95
|
-
# @api public
|
96
|
-
def mode
|
97
|
-
@mode || DEFAULT_MODE
|
98
|
-
end
|
99
|
-
|
100
|
-
#
|
101
|
-
# Sets the array of fields which the +DefaultUserController+ will store in the session.
|
102
|
-
# Defaults to {DEFAULT_STORE_USER_ATTRS_IN_SESSION}.
|
103
|
-
#
|
104
|
-
attr_writer :store_user_attrs_in_session
|
105
|
-
|
106
|
-
#
|
107
|
-
# Returns fields which the {DefaultUserController} stores in the session.
|
108
|
-
# Defaults to {DEFAULT_STORE_USER_ATTRS_IN_SESSION}.
|
109
|
-
#
|
110
|
-
def store_user_attrs_in_session
|
111
|
-
@store_user_attrs_in_session || DEFAULT_STORE_USER_ATTRS_IN_SESSION
|
112
|
-
end
|
113
|
-
|
114
|
-
def editor_interface_enabled?
|
115
|
-
mode == :editor
|
116
|
-
end
|
117
|
-
|
118
|
-
def use_edited_content?
|
119
|
-
mode == :preview || mode == :editor
|
120
|
-
end
|
121
|
-
|
122
|
-
# Configures your CMS instance name.
|
123
|
-
#
|
124
|
-
# Example call as to be used in <tt>rails_connector.rb</tt>:
|
125
|
-
# RailsConnector::Configuration.instance_name = 'internet'
|
126
|
-
# @api public
|
127
|
-
def instance_name=(name)
|
128
|
-
RailsConnector::CmsBaseModel.instance_name = name if RailsConnector.platform_fiona?
|
129
|
-
end
|
130
|
-
|
131
|
-
def after_initialize
|
132
|
-
enable_ses
|
133
|
-
enable_authentication
|
134
|
-
::RailsConnector::BasicObj.configure_for_content(
|
135
|
-
::RailsConnector::Configuration.use_edited_content? ? :edited : :released
|
136
|
-
)
|
137
|
-
end
|
138
|
-
|
139
|
-
def to_prepare
|
140
|
-
unless Rails.configuration.cache_classes
|
141
|
-
after_initialize
|
142
|
-
NamedLink.reset_cache
|
143
|
-
BasicObj.reset_type_cache
|
144
|
-
::ApplicationController.__send__(:helper, :cms)
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
|
-
def configure_cms_database
|
149
|
-
if RailsConnector.platform_fiona?
|
150
|
-
RailsConnector::CmsBaseModel.configure_database("cms")
|
151
|
-
elsif local_config_file.configured?('content_service')
|
152
|
-
@content_service = local_config_file['content_service']
|
153
|
-
RailsConnector::CmsRestApi.credentials = local_config_file["cms_api"].symbolize_keys
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
attr_accessor :choose_homepage_callback
|
158
|
-
|
159
|
-
# Configure a callback to be invoked when the rails connector delivers the homepage.
|
160
|
-
# The given callback will receive the rack env
|
161
|
-
# and must return an Obj to be used as the homepage.
|
162
|
-
# If no callback is configured, Obj.homepage will be used as the default.
|
163
|
-
# @api public
|
164
|
-
def choose_homepage(&block)
|
165
|
-
self.choose_homepage_callback = block
|
166
|
-
end
|
167
|
-
|
168
|
-
def cms_routes(*args)
|
169
|
-
raise <<-EOS.gsub(/\s+/, ' ')
|
170
|
-
Calling RailsConnector::Configuration.cms_routes is not needed anymore.
|
171
|
-
Please remove it from config/routes.rb
|
172
|
-
EOS
|
173
|
-
end
|
174
|
-
|
175
|
-
def use_x_sendfile=(value)
|
176
|
-
raise 'Configuration.use_x_sendfile is now available as Rails configuration:'\
|
177
|
-
' config.action_dispatch.x_sendfile_header = "X-Sendfile"'
|
178
|
-
end
|
179
|
-
|
180
|
-
def local_config_file
|
181
|
-
@local_config_file ||= read_local_config_file
|
182
|
-
end
|
183
|
-
|
184
|
-
def local_config_file_name
|
185
|
-
(Rails.root + "config/rails_connector.yml").expand_path
|
186
|
-
end
|
187
|
-
|
188
|
-
# for test purposes only
|
189
|
-
def reset_local_config_file_cache
|
190
|
-
@local_config_file = nil
|
191
|
-
end
|
192
|
-
|
193
|
-
protected
|
194
|
-
|
195
|
-
def read_local_config_file
|
196
|
-
contents = YAML.load_file(local_config_file_name) if File.exists?(local_config_file_name)
|
197
|
-
contents ||= {}
|
198
|
-
|
199
|
-
config = HelpfulConfiguration.new(
|
200
|
-
contents,
|
201
|
-
local_config_file_name
|
202
|
-
)
|
203
|
-
config.explain(
|
204
|
-
"cms_database",
|
205
|
-
"a hash of options, including type, that specify the database configuration"
|
206
|
-
)
|
207
|
-
config.explain(
|
208
|
-
"cms_blob_storage",
|
209
|
-
"a hash of options, including type, that specify the cms blob storage configuration"
|
210
|
-
)
|
211
|
-
config.explain(
|
212
|
-
"cms_dict_storage",
|
213
|
-
"a hash of options, including type, that specify the cms dict storage configuration"
|
214
|
-
)
|
215
|
-
config.explain(
|
216
|
-
"search",
|
217
|
-
"a hash of options that specify access to the search server"
|
218
|
-
)
|
219
|
-
config.explain(
|
220
|
-
"cms_api",
|
221
|
-
"a hash of options that specify access to the cms api"
|
222
|
-
)
|
223
|
-
config.explain 'content_service', 'a hash of options that specify access to content service'
|
224
|
-
config
|
225
|
-
end
|
226
|
-
|
227
|
-
def enable_authentication
|
228
|
-
::ApplicationController.__send__(:include, RailsConnector::Authenticable)
|
229
|
-
end
|
230
|
-
|
231
|
-
def enable_ses
|
232
|
-
if RailsConnector.platform_fiona?
|
233
|
-
require 'rails_connector/ses'
|
234
|
-
|
235
|
-
RailsConnector::SES.enable
|
236
|
-
end
|
237
|
-
end
|
238
|
-
end
|
239
|
-
|
240
|
-
# defaults
|
241
|
-
self.ca_file = DEFAULT_CA_FILE
|
242
|
-
self.editing_auth{ |env| false }
|
243
|
-
end
|
244
|
-
|
245
|
-
class ConfigurationError < StandardError
|
246
|
-
end
|
247
|
-
end
|