infopark_rails_connector 6.9.1.3.22208381 → 6.9.2.1.125136549
Sign up to get free protection for your applications and to get access to all the features.
- data/README +2 -14
- data/app/assets/javascripts/infopark_rails_connector.js.erb +0 -3
- data/app/assets/stylesheets/infopark_rails_connector.css.erb +0 -4
- data/app/controllers/rails_connector/default_cms_controller.rb +0 -1
- data/app/helpers/rails_connector/default_cms_helper.rb +0 -6
- data/app/helpers/rails_connector/layout_helper.rb +2 -7
- data/app/views/cms/index.html.erb +0 -2
- data/app/views/errors/410_gone.html.erb +2 -2
- data/config/ca-bundle.crt +1 -1
- data/config/cms_routes.rb +2 -1
- data/config/locales/de.rails_connector.views.yml +0 -78
- data/config/locales/en.rails_connector.views.yml +0 -78
- data/lib/generators/rails_connector/install/install_generator.rb +0 -1
- data/lib/generators/rails_connector/install/templates/initializers/rails_connector.rb +0 -27
- data/lib/rails_connector/cms_accessible.rb +0 -4
- data/lib/rails_connector/configuration.rb +9 -72
- data/lib/rails_connector/engine.rb +0 -18
- metadata +3 -181
- data/app/assets/images/ratings/star.gif +0 -0
- data/app/assets/images/time_machine/calendar-menuarrow.gif +0 -0
- data/app/assets/images/time_machine/calendar_bg.png +0 -0
- data/app/assets/images/time_machine/icon.png +0 -0
- data/app/assets/images/time_machine/slider_bg.png +0 -0
- data/app/assets/images/time_machine/slider_handle.png +0 -0
- data/app/assets/images/time_machine/timemachine_bg.png +0 -0
- data/app/assets/javascripts/comments.js +0 -29
- data/app/assets/javascripts/initializer.js +0 -9
- data/app/assets/javascripts/ratings.js +0 -26
- data/app/assets/javascripts/time_machine.js +0 -8
- data/app/assets/javascripts/time_machine/calendar-setup.js +0 -200
- data/app/assets/javascripts/time_machine/calendar.js +0 -1806
- data/app/assets/javascripts/time_machine/lang/calendar-de.js +0 -127
- data/app/assets/javascripts/time_machine/lang/calendar-en.js +0 -127
- data/app/assets/javascripts/time_machine/lang/calendar-es.js +0 -129
- data/app/assets/javascripts/time_machine/lang/calendar-fr.js +0 -125
- data/app/assets/javascripts/time_machine/lang/calendar-it.js +0 -124
- data/app/assets/javascripts/time_machine/slider.js +0 -278
- data/app/assets/stylesheets/ratings.css +0 -97
- data/app/assets/stylesheets/time_machine.css +0 -6
- data/app/assets/stylesheets/time_machine/time_machine.css +0 -292
- data/app/controllers/comments_controller.rb +0 -6
- data/app/controllers/crm_form_controller.rb +0 -6
- data/app/controllers/rails_connector/default_comments_controller.rb +0 -70
- data/app/controllers/rails_connector/default_crm_form_controller.rb +0 -167
- data/app/controllers/rails_connector/default_ratings_controller.rb +0 -84
- data/app/controllers/rails_connector/default_rss_controller.rb +0 -30
- data/app/controllers/rails_connector/default_search_controller.rb +0 -60
- data/app/controllers/rails_connector/default_user_controller.rb +0 -269
- data/app/controllers/rails_connector/time_machine_controller.rb +0 -48
- data/app/controllers/ratings_controller.rb +0 -6
- data/app/controllers/rss_controller.rb +0 -6
- data/app/controllers/search_controller.rb +0 -6
- data/app/controllers/seo_sitemap_controller.rb +0 -12
- data/app/controllers/user_controller.rb +0 -6
- data/app/helpers/crm_form_helper.rb +0 -6
- data/app/helpers/rails_connector/default_crm_form_helper.rb +0 -58
- data/app/helpers/rails_connector/default_ratings_helper.rb +0 -38
- data/app/helpers/rails_connector/default_user_helper.rb +0 -90
- data/app/helpers/rails_connector/error_messages_helper.rb +0 -23
- data/app/helpers/rails_connector/link_helper.rb +0 -93
- data/app/helpers/rails_connector/mandatory_label_helper.rb +0 -10
- data/app/helpers/rails_connector/menu_helper.rb +0 -73
- data/app/helpers/rails_connector/micronav_helper.rb +0 -109
- data/app/helpers/rails_connector/seo_helper.rb +0 -44
- data/app/helpers/rails_connector/time_machine_helper.rb +0 -26
- data/app/helpers/rails_connector/tracking_helper.rb +0 -32
- data/app/helpers/ratings_helper.rb +0 -4
- data/app/helpers/user_helper.rb +0 -6
- data/app/mailers/confirmation_mailer.rb +0 -15
- data/app/models/crm_form.rb +0 -2
- data/app/models/rails_connector/default_comment.rb +0 -30
- data/app/models/rails_connector/default_rating.rb +0 -22
- data/app/views/cms/_comments.html.erb +0 -44
- data/app/views/cms/_rating.html.erb +0 -31
- data/app/views/comments/_comment.html.erb +0 -28
- data/app/views/confirmation_mailer/register_confirmation.erb +0 -5
- data/app/views/confirmation_mailer/reset_password.erb +0 -5
- data/app/views/crm_form/_flash_messages.html.erb +0 -11
- data/app/views/crm_form/_form.html.erb +0 -17
- data/app/views/crm_form/confirmation.html.erb +0 -3
- data/app/views/crm_form/index.html.erb +0 -5
- data/app/views/crm_form/not_logged_in.html.erb +0 -1
- data/app/views/layouts/rails_connector/time_machine.html.erb +0 -12
- data/app/views/rails_connector/time_machine/index.html.erb +0 -88
- data/app/views/rss/_item.rss.builder +0 -11
- data/app/views/rss/index.rss.builder +0 -11
- data/app/views/search/_hit.html.erb +0 -11
- data/app/views/search/_hits.html.erb +0 -11
- data/app/views/search/_mini_panel.html.erb +0 -4
- data/app/views/search/_pagination.html.erb +0 -5
- data/app/views/search/_panel.html.erb +0 -4
- data/app/views/search/search.html.erb +0 -12
- data/app/views/seo_sitemap/show.xml.builder +0 -16
- data/app/views/user/_flash_messages.html.erb +0 -11
- data/app/views/user/edit.html.erb +0 -6
- data/app/views/user/edit_password.html.erb +0 -11
- data/app/views/user/forgot_password.html.erb +0 -7
- data/app/views/user/login.html.erb +0 -15
- data/app/views/user/new.html.erb +0 -13
- data/app/views/user/profile.html.erb +0 -8
- data/app/views/user/register_pending.html.erb +0 -1
- data/app/views/user/set_password.html.erb +0 -14
- data/config/locales/de.rails_connector.controllers.yml +0 -28
- data/config/locales/de.rails_connector.helpers.yml +0 -9
- data/config/locales/de.rails_connector.models.yml +0 -8
- data/config/locales/en.rails_connector.controllers.yml +0 -28
- data/config/locales/en.rails_connector.helpers.yml +0 -9
- data/config/locales/en.rails_connector.models.yml +0 -8
- data/config/routes.rb +0 -31
- data/lib/generators/rails_connector/comments/comments_generator.rb +0 -20
- data/lib/generators/rails_connector/comments/templates/migration.rb +0 -16
- data/lib/generators/rails_connector/install/templates/initializers/crm_connector.rb +0 -22
- data/lib/generators/rails_connector/ratings/ratings_generator.rb +0 -20
- data/lib/generators/rails_connector/ratings/templates/migration.rb +0 -14
- data/lib/rails_connector/commentable.rb +0 -23
- data/lib/rails_connector/configuration/google_analytics.rb +0 -29
- data/lib/rails_connector/configuration/rss.rb +0 -46
- data/lib/rails_connector/crm.rb +0 -282
- data/lib/rails_connector/googlebot_checker.rb +0 -46
- data/lib/rails_connector/liquid_support.rb +0 -25
- data/lib/rails_connector/liquid_support/field_value_drop.rb +0 -22
- data/lib/rails_connector/liquid_support/general_helper_tag.rb +0 -44
- data/lib/rails_connector/liquid_support/link_drop.rb +0 -22
- data/lib/rails_connector/liquid_support/liquid_template_handler.rb +0 -162
- data/lib/rails_connector/liquid_support/named_object_drop.rb +0 -14
- data/lib/rails_connector/liquid_support/obj_drop.rb +0 -43
- data/lib/rails_connector/liquid_support/obj_filters.rb +0 -77
- data/lib/rails_connector/rateable.rb +0 -57
- data/lib/rails_connector/seo.rb +0 -52
- data/lib/rails_connector/ses.rb +0 -81
- data/lib/rails_connector/syndicateable.rb +0 -11
- data/lib/search_request.rb +0 -2
@@ -1,29 +0,0 @@
|
|
1
|
-
module RailsConnector
|
2
|
-
class Configuration
|
3
|
-
|
4
|
-
# This module is an extension to the rails connector configuration.
|
5
|
-
#
|
6
|
-
# Configuration example:
|
7
|
-
#
|
8
|
-
# RailsConnector::Configuration::GoogleAnalytics.domains(
|
9
|
-
# 'www.example.de' => 'UA-example-1',
|
10
|
-
# 'www.example.com' => 'UA-example-2'
|
11
|
-
# )
|
12
|
-
module GoogleAnalytics
|
13
|
-
@@domains = {}
|
14
|
-
|
15
|
-
def self.domains=(domains_and_codes)
|
16
|
-
@@domains = @@domains.merge(domains_and_codes)
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.domains(domains_and_codes)
|
20
|
-
self.domains = domains_and_codes
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.domain_code(domain)
|
24
|
-
@@domains[domain]
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
29
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
module RailsConnector
|
2
|
-
class Configuration
|
3
|
-
|
4
|
-
# This module adds configuration options for the RSS feature.
|
5
|
-
#
|
6
|
-
# Specify the RSS root in
|
7
|
-
# <code><em>RAILS_ROOT</em>/config/initializers/rails_connector.rb</code>:
|
8
|
-
# RailsConnector::Configuration::Rss.root = lambda { NamedLink.get_object('news') }
|
9
|
-
module Rss
|
10
|
-
|
11
|
-
# Raised if no RSS root object has been specified.
|
12
|
-
class RootUndefined < StandardError; end
|
13
|
-
# Raised if the root is missing when accessing it
|
14
|
-
# Inherits from {RootUndefined} for compatibility reasons
|
15
|
-
class RootNotFound < RootUndefined; end
|
16
|
-
|
17
|
-
@root_provider = nil
|
18
|
-
|
19
|
-
# Stores the obj providing lambda for later use
|
20
|
-
def self.root=(obj_provider)
|
21
|
-
case obj_provider
|
22
|
-
when Obj
|
23
|
-
Rails.logger.warn("Rss.root= called with an Obj. Use an Obj returning lambda instead.")
|
24
|
-
root_id = obj_provider.id
|
25
|
-
@root_provider = lambda { Obj.find(root_id) }
|
26
|
-
when Proc
|
27
|
-
@root_provider = obj_provider
|
28
|
-
else
|
29
|
-
raise ArgumentError.new("Rss.root= called with '#{obj_provider.class.name}' instead of a lambda.")
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
# Returns the RSS root object.
|
34
|
-
# If no RSS root has been specified then {Rss::RootUndefined} is raised.
|
35
|
-
def self.root
|
36
|
-
raise RootUndefined unless @root_provider
|
37
|
-
begin
|
38
|
-
@root_provider.call
|
39
|
-
rescue RailsConnector::ResourceNotFound
|
40
|
-
raise RootNotFound
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
end
|
data/lib/rails_connector/crm.rb
DELETED
@@ -1,282 +0,0 @@
|
|
1
|
-
module RailsConnector
|
2
|
-
|
3
|
-
# This module provides high-level access to the Infopark WebCRM.
|
4
|
-
#
|
5
|
-
# Methods from the {AuthenticationSupport} module are included
|
6
|
-
# in all controllers when enabling the Crm feature in your RailsConnector configuration:
|
7
|
-
#
|
8
|
-
# RailsConnector::Configuration.enable(
|
9
|
-
# :crm
|
10
|
-
# )
|
11
|
-
module Crm
|
12
|
-
|
13
|
-
# This method requires the infopark_crm_connector gem.
|
14
|
-
#
|
15
|
-
# If the gem is available, it does the following:
|
16
|
-
# * require it
|
17
|
-
# * include +AuthenticationSupport+ in +ApplicationController+
|
18
|
-
# * declares helper methods in +ApplicationController+
|
19
|
-
# * adds a class-inheritable array to +ApplicationController+ for convenience
|
20
|
-
# (see +session_attributes_for+)
|
21
|
-
#
|
22
|
-
# If not, it raises a {LoadError}.
|
23
|
-
def self.enable
|
24
|
-
require 'infopark_crm_connector'
|
25
|
-
ApplicationController.__send__(:include, AuthenticationSupport)
|
26
|
-
end
|
27
|
-
|
28
|
-
module AuthenticationSupport
|
29
|
-
|
30
|
-
protected
|
31
|
-
|
32
|
-
def self.included(base)
|
33
|
-
base.helper_method :logged_in?, :current_user, :admin?
|
34
|
-
end
|
35
|
-
|
36
|
-
# Returns a hash of attributes for the given user that are to be stored in the session.
|
37
|
-
#
|
38
|
-
# Uses the array {RailsConnector::Configuration.store_user_attrs_in_session} to determine which
|
39
|
-
# fields to store.
|
40
|
-
# Because the field <tt>:id</tt> must always be stored in the session, it is always in the array
|
41
|
-
# returned by {session_attributes_for}, independent on the fields specified by
|
42
|
-
# {RailsConnector::Configuration.store_user_attrs_in_session}.
|
43
|
-
#
|
44
|
-
# User live_server_groups are stored in the session by default.
|
45
|
-
def session_attributes_for(user)
|
46
|
-
attributes = {}
|
47
|
-
serialized_attributes = \
|
48
|
-
user.attributes.merge(:live_server_groups => user.live_server_groups).symbolize_keys
|
49
|
-
(RailsConnector::Configuration.store_user_attrs_in_session + [:id]).each do |attr|
|
50
|
-
attributes[attr.to_sym] = serialized_attributes[attr.to_sym]
|
51
|
-
end
|
52
|
-
attributes[:live_server_groups] = serialized_attributes[:live_server_groups]
|
53
|
-
attributes
|
54
|
-
end
|
55
|
-
|
56
|
-
# Determines if the user is logged in.
|
57
|
-
# Defined as helper method in +ApplicationController+ when enabling the Crm feature.
|
58
|
-
# @return bool
|
59
|
-
def logged_in?
|
60
|
-
!session[:user].blank?
|
61
|
-
end
|
62
|
-
|
63
|
-
# Returns a +Contact+ object with attributes stored in the session.
|
64
|
-
#
|
65
|
-
# To change which fields {DefaultUserController} stores in the session use
|
66
|
-
# {RailsConnector::Configuration.store_user_attrs_in_session}.
|
67
|
-
# @return [Infopark::Crm::Contact]
|
68
|
-
def current_user
|
69
|
-
@current_user ||= if logged_in?
|
70
|
-
incorrect_encoding = session[:user].any? do |key, value|
|
71
|
-
value.is_a?(String) && value.encoding_aware? && value.encoding.name != 'UTF-8'
|
72
|
-
end
|
73
|
-
if incorrect_encoding
|
74
|
-
self.current_user = Infopark::Crm::Contact.find(session[:user][:id])
|
75
|
-
end
|
76
|
-
|
77
|
-
user_session = session[:user].dup
|
78
|
-
live_server_groups = user_session.delete(:live_server_groups)
|
79
|
-
user = Infopark::Crm::Contact.new(user_session || {})
|
80
|
-
user.live_server_groups = live_server_groups
|
81
|
-
user
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
# Takes a +Contact+ object and stores its user attributes in the session.
|
86
|
-
#
|
87
|
-
# This can be helpful if you want to set a user for e.g. Googlebot.
|
88
|
-
# @param [Infopark::Crm::Contact] user
|
89
|
-
# @return [void]
|
90
|
-
def current_user=(user)
|
91
|
-
@current_user = user
|
92
|
-
session[:user] = user.nil? ? nil : session_attributes_for(user)
|
93
|
-
end
|
94
|
-
|
95
|
-
# Reloads the +Contact+ object in +current_user+ from the WebCRM,
|
96
|
-
# and updates the user attribute cached in the session.
|
97
|
-
# @return [void]
|
98
|
-
def reload_current_user
|
99
|
-
user = current_user
|
100
|
-
user.reload
|
101
|
-
self.current_user = user
|
102
|
-
end
|
103
|
-
|
104
|
-
# Determines if the current user is admin (+false+ by default).
|
105
|
-
# Being admin enables to user to delete comments and reset ratings.
|
106
|
-
# Defined as helper method in +ApplicationController+ when enabling the CRM feature.
|
107
|
-
#
|
108
|
-
# To change the default behavior overwrite <tt>admin?</tt> in your ApplicationController:
|
109
|
-
#
|
110
|
-
# class ApplicationController < ActionController::Base
|
111
|
-
#
|
112
|
-
# private
|
113
|
-
#
|
114
|
-
# def admin?
|
115
|
-
# logged_in? && current_user.live_server_groups.include?("admins")
|
116
|
-
# end
|
117
|
-
#
|
118
|
-
# end
|
119
|
-
# @return bool
|
120
|
-
def admin?
|
121
|
-
false
|
122
|
-
end
|
123
|
-
|
124
|
-
end
|
125
|
-
|
126
|
-
module Localizable
|
127
|
-
# --------------------------------------------
|
128
|
-
# This module can be included in controllers
|
129
|
-
# that interface the WebCRM so error messages
|
130
|
-
# are localized
|
131
|
-
# --------------------------------------------
|
132
|
-
def self.included(base)
|
133
|
-
base.before_filter :set_crm_language
|
134
|
-
end
|
135
|
-
|
136
|
-
private
|
137
|
-
|
138
|
-
def set_crm_language
|
139
|
-
Infopark::Crm.configure {|config| config.locale = I18n.locale.to_s }
|
140
|
-
end
|
141
|
-
end
|
142
|
-
|
143
|
-
module Sanitization
|
144
|
-
# --------------------------------------------
|
145
|
-
# This module is included in controllers to
|
146
|
-
# sanitize user input, in reference to a given
|
147
|
-
# whitelist
|
148
|
-
# --------------------------------------------
|
149
|
-
|
150
|
-
private
|
151
|
-
|
152
|
-
def sanitize_user_params(user_params_or_nil, whitelist)
|
153
|
-
user_params = user_params_or_nil || {}
|
154
|
-
|
155
|
-
filtered_contact_attrs = filter_params_hash(
|
156
|
-
user_params, whitelist[:contact]
|
157
|
-
)
|
158
|
-
|
159
|
-
filtered_contact_attrs
|
160
|
-
end
|
161
|
-
|
162
|
-
def filter_params_hash(source_hash, allowed_keys_unstringified)
|
163
|
-
return {} unless source_hash
|
164
|
-
allowed_keys = allowed_keys_unstringified.map(&:to_s)
|
165
|
-
source_hash.reject { |key, value| !allowed_keys.include?(key) }
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
# This module is included in {DefaultUserController} to provide callbacks for user functionality.
|
170
|
-
#
|
171
|
-
# If you want to add behavior before or after authentication, logout or register, override any of
|
172
|
-
# the methods included in this module in your {UserController}.
|
173
|
-
module Callbacks
|
174
|
-
|
175
|
-
private
|
176
|
-
|
177
|
-
# @!group Callbacks
|
178
|
-
|
179
|
-
# Called by {DefaultUserController} on POST requests before a user is authenticated,
|
180
|
-
# i.e. the user has already provided credentials in a form.
|
181
|
-
#
|
182
|
-
# By default, it doesn't do anything.
|
183
|
-
# @return [void]
|
184
|
-
def before_authenticate
|
185
|
-
end
|
186
|
-
|
187
|
-
# Called by {DefaultUserController} before a user is logged out,
|
188
|
-
# i.e. the session is reset.
|
189
|
-
#
|
190
|
-
# By default, it doesn't do anything.
|
191
|
-
# @return [void]
|
192
|
-
def before_logout
|
193
|
-
end
|
194
|
-
|
195
|
-
# Called by {DefaultUserController} on POST requests before a user is created,
|
196
|
-
# i.e. the user has already provided name, e-mail etc. in a form.
|
197
|
-
#
|
198
|
-
# By default, it doesn't do anything.
|
199
|
-
# @return [void]
|
200
|
-
def before_register
|
201
|
-
end
|
202
|
-
|
203
|
-
# Called by {DefaultUserController} on POST requests after a user is authenticated,
|
204
|
-
# i.e. the user has already provided correct credentials but the session has not yet been set.
|
205
|
-
#
|
206
|
-
# By default, it doesn't do anything.
|
207
|
-
# @return [void]
|
208
|
-
def after_authenticate
|
209
|
-
end
|
210
|
-
|
211
|
-
# Called by {DefaultUserController} after a user is logged out,
|
212
|
-
# i.e. the session is reset.
|
213
|
-
#
|
214
|
-
# By default, it doesn't do anything.
|
215
|
-
# @return [void]
|
216
|
-
def after_logout
|
217
|
-
end
|
218
|
-
|
219
|
-
# Called by {DefaultUserController} on POST requests after a user is created,
|
220
|
-
# i.e. a WebCRM activity has been created or the user has been created directly in the WebCRM.
|
221
|
-
#
|
222
|
-
# By default, it doesn't do anything.
|
223
|
-
# @return [void]
|
224
|
-
def after_register
|
225
|
-
end
|
226
|
-
|
227
|
-
# Called by {DefaultUserController} whenever requests to the WebCRM fail.
|
228
|
-
# This includes <tt>Errno::ECONNREFUSED</tt> or the ActiveResource errors +ForbiddenAccess+,
|
229
|
-
# +UnauthorizedAccess+, and +BadRequest+.
|
230
|
-
#
|
231
|
-
# By default, it raises an error so that administrators are notified immediately
|
232
|
-
# if the WebCRM is down or not configured properly.
|
233
|
-
# @return [void]
|
234
|
-
def on_crm_error(exception)
|
235
|
-
raise exception
|
236
|
-
end
|
237
|
-
|
238
|
-
# @!endgroup
|
239
|
-
|
240
|
-
end
|
241
|
-
|
242
|
-
# Default attributes for WebCRM's Contact.
|
243
|
-
#
|
244
|
-
# Helpers like +form_for+ will fail on +ActiveResource+ attributes
|
245
|
-
# until those attributes are set.
|
246
|
-
# See http://www.ruby-forum.com/topic/113542
|
247
|
-
#
|
248
|
-
# This constant provides default values for nearly all attributes.
|
249
|
-
#
|
250
|
-
# You are free to use any of these attributes in your views.
|
251
|
-
# If you try to use others, +form_for+ will fail.
|
252
|
-
CONTACT_DEFAULT_ATTRS = {
|
253
|
-
:id => '',
|
254
|
-
:account_id => '',
|
255
|
-
:org_name_address => '',
|
256
|
-
:org_unit_address => '',
|
257
|
-
:extended_address => '',
|
258
|
-
:street_address => '',
|
259
|
-
:postalcode => '',
|
260
|
-
:locality => '',
|
261
|
-
:region => '',
|
262
|
-
:country => '',
|
263
|
-
:email => '',
|
264
|
-
:fax => '',
|
265
|
-
:first_name => '',
|
266
|
-
:gender => 'N',
|
267
|
-
:job_title => '',
|
268
|
-
:language => 'en',
|
269
|
-
:last_name => '',
|
270
|
-
:login => '',
|
271
|
-
:mobile_phone => '',
|
272
|
-
:name_prefix => '',
|
273
|
-
:phone => '',
|
274
|
-
:want_geo_location => '',
|
275
|
-
:want_email => 0,
|
276
|
-
:want_phonecall => 0,
|
277
|
-
:want_snailmail => 0
|
278
|
-
}.stringify_keys
|
279
|
-
|
280
|
-
end
|
281
|
-
|
282
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
module RailsConnector
|
2
|
-
|
3
|
-
module GooglebotChecker
|
4
|
-
require 'socket'
|
5
|
-
|
6
|
-
protected
|
7
|
-
|
8
|
-
def referer_is_google?
|
9
|
-
return true if request.headers['Referer'] =~ /google/
|
10
|
-
end
|
11
|
-
|
12
|
-
def is_genuine_googlebot?(ip_address)
|
13
|
-
if ip_address =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
|
14
|
-
host = reverse_dns_lookup_for_ip(ip_address)
|
15
|
-
return false unless host =~ /googlebot.com$/
|
16
|
-
res = forward_dns_matcher(host, ip_address)
|
17
|
-
return res
|
18
|
-
else
|
19
|
-
return false
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def reverse_dns_lookup_for_ip(ip_address)
|
26
|
-
begin
|
27
|
-
addr = Socket.gethostbyname(ip_address)
|
28
|
-
Socket.gethostbyaddr(addr[3],Socket::AF_INET)[0]
|
29
|
-
rescue
|
30
|
-
[]
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def forward_dns_matcher(host, ip_address)
|
35
|
-
begin
|
36
|
-
lookup = Socket.getaddrinfo(host, 0,
|
37
|
-
Socket::AF_INET, Socket::SOCK_STREAM, nil,
|
38
|
-
Socket::AI_CANONNAME)
|
39
|
-
return true if lookup.collect {|info| info[3]}.uniq.include?(ip_address)
|
40
|
-
rescue
|
41
|
-
false
|
42
|
-
end
|
43
|
-
false
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'liquid'
|
2
|
-
|
3
|
-
# A collection of modules and classes needed to enable Liquid templates with Rails Connector
|
4
|
-
# @api public
|
5
|
-
module RailsConnector::LiquidSupport
|
6
|
-
|
7
|
-
# Helpers can be made available in Liquid templates by enabling them in the
|
8
|
-
# app initialization like this:
|
9
|
-
#
|
10
|
-
# RailsConnector::LiquidSupport.enable_helpers(
|
11
|
-
# :helper_a,
|
12
|
-
# :helper_b
|
13
|
-
# )
|
14
|
-
# @api public
|
15
|
-
def self.enable_helpers(*helpers)
|
16
|
-
helpers.each do |helper|
|
17
|
-
GeneralHelperTag << helper
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
# set to +true+ if an error in a liquid template should lead to an 500 server error
|
22
|
-
# @api public
|
23
|
-
mattr_accessor :raise_template_errors
|
24
|
-
|
25
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module RailsConnector::LiquidSupport
|
2
|
-
|
3
|
-
class FieldValueDrop < Liquid::Drop
|
4
|
-
attr_accessor :__value, :__marker
|
5
|
-
|
6
|
-
def initialize(obj, field, value, marker)
|
7
|
-
@obj, @field, @__value, @__marker = obj, field, value, marker
|
8
|
-
end
|
9
|
-
|
10
|
-
def to_s
|
11
|
-
action_view = @context.registers[:action_view]
|
12
|
-
safe_value = __value.to_s.html_safe
|
13
|
-
if __marker
|
14
|
-
action_view.edit_marker(@obj, @field) { safe_value }
|
15
|
-
else
|
16
|
-
safe_value
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|