forked from CartoDB/cartodb
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgoogle_plus_config.rb
More file actions
34 lines (23 loc) · 1.6 KB
/
google_plus_config.rb
File metadata and controls
34 lines (23 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class GooglePlusConfig
attr_reader :domain, :signup_action, :iframe_src, :client_id, :cookie_policy, :access_token_field_id
attr_accessor :unauthenticated_valid_access_token
# @param app_module CartoDB Module containing global functions
# @param config CartoDB config
# @param signup_action Signup action, usually without subdomain. Google login button requires request to come from a known subdomain, so we can't use subdomain schema.
# @param access_token_field_id String
# @param button_color: hex for the color
def self.instance(app_module, config, signup_action, access_token_field_id = 'google_access_token', button_color = nil)
config[:oauth].present? && config[:oauth]['google_plus'].present? ?
GooglePlusConfig.new(app_module, config, signup_action, access_token_field_id, button_color) : nil
end
def initialize(app_module, config, signup_action, access_token_field_id = 'google_access_token', button_color = nil)
schema = Rails.env.development? ? 'http' : 'https'
@domain = config[:domain_name].present? ? config[:domain_name] : app_module.account_host.scan(/([^:]*)(:.*)?/).first.first
@signup_action = signup_action
button_color_param = button_color.nil? ? '' : "?button_color=#{button_color}".gsub('#', '')
@iframe_src = app_module.account_host.present? ? "#{schema}://#{app_module.account_host}/google_plus#{button_color_param}" : "#{@domain}/google_plus#{button_color_param}"
@access_token_field_id = access_token_field_id
@client_id = config[:oauth]['google_plus']['client_id']
@cookie_policy = config[:oauth]['google_plus']['cookie_policy']
end
end