class Omniauth::Rails::Configurator

Constants

REQUIRED_SETTINGS

Attributes

data[R]

Public Class Methods

default_config_file() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 7
def self.default_config_file
  "#{::Rails.root}/config/omniauth_rails.yml"
end
from_default_config_file() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 11
def self.from_default_config_file
  ::Rails.logger.info "Omniauth::Rails::Configurator: Loading from " \
                      "default_config_file=#{default_config_file}"
  from_yaml(default_config_file)
end
from_yaml(file) click to toggle source
# File lib/omniauth/rails/configurator.rb, line 17
def self.from_yaml(file)
  new(YAML.load(ERB.new(File.read(file)).result)[::Rails.env])
end
new(data) click to toggle source
# File lib/omniauth/rails/configurator.rb, line 21
def initialize(data)
  @data = data
end

Public Instance Methods

configure() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 25
def configure
  validate!

  configure_omni_auth_settings
  configure_providers

  Configuration.automount = automount
  Configuration.authenticated_root = authenticated_root
  Configuration.unauthenticated_root = unauthenticated_root
  Configuration.include_concern_in_application_controller = include_concern_in_application_controller
  Configuration.session_duration = session_duration.seconds if session_duration.present?
  Configuration.extra_keys_to_store_in_session = extra_keys_to_store_in_session
  Configuration.dev_mode = dev_mode
end

Private Instance Methods

authenticated_root() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 77
def authenticated_root
  data["authenticated_root"]
end
automount() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 69
def automount
  data["automount"] != false
end
configure_omni_auth_settings() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 44
def configure_omni_auth_settings
  OmniAuth.config.logger = ::Rails.logger
  OmniAuth.config.path_prefix = path_prefix
end
configure_providers() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 101
def configure_providers
  providers.each do |provider, provider_config|
    Provider.configure(provider, provider_config)
  end
end
dev_mode() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 49
def dev_mode
  data["dev_mode"] == true
end
dev_mode_allowed?() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 65
def dev_mode_allowed?
  ::Rails.env.development?
end
extra_keys_to_store_in_session() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 97
def extra_keys_to_store_in_session
  data["extra_keys_to_store_in_session"] || %w(name image)
end
include_concern_in_application_controller() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 93
def include_concern_in_application_controller
  data["autoload_in_application_controller"] != false
end
path_prefix() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 73
def path_prefix
  data["path_prefix"] || "/auth"
end
providers() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 89
def providers
  data["providers"]
end
session_duration() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 85
def session_duration
  data["session_duration_in_seconds"]
end
unauthenticated_root() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 81
def unauthenticated_root
  data["unauthenticated_root"]
end
validate!() click to toggle source
# File lib/omniauth/rails/configurator.rb, line 53
def validate!
  REQUIRED_SETTINGS.each do |setting|
    raise "#{setting} is required" unless send(setting).present?
  end

  if dev_mode # rubocop:disable Style/GuardClause
    raise "dev_mode may not be used in #{::Rails.env}" unless dev_mode_allowed?
    ::Rails.logger.info "Omniauth::Rails: dev_mode is enabled. Authentication and " \
                        "authorization are disabled."
  end
end