2010-10-14 14:04:02 -04:00
|
|
|
begin
|
|
|
|
require "omniauth/core"
|
|
|
|
rescue LoadError => e
|
|
|
|
warn "Could not load 'omniauth/core'. Please ensure you have the oa-core gem installed and listed in your Gemfile."
|
|
|
|
raise
|
|
|
|
end
|
|
|
|
|
|
|
|
module OmniAuth
|
2010-10-14 19:15:17 -04:00
|
|
|
# TODO HAXES Backport to OmniAuth
|
|
|
|
module Strategy #:nodoc:
|
2010-10-14 14:04:02 -04:00
|
|
|
def initialize(app, name, *args)
|
|
|
|
@app = app
|
|
|
|
@name = name.to_sym
|
|
|
|
yield self if block_given?
|
|
|
|
end
|
2010-10-14 19:15:17 -04:00
|
|
|
|
|
|
|
def fail!(message_key, exception = nil)
|
|
|
|
self.env['omniauth.error'] = exception
|
|
|
|
self.env['omniauth.failure_key'] = message_key
|
|
|
|
self.env['omniauth.failed_strategy'] = self
|
|
|
|
OmniAuth.config.on_failure.call(self.env, message_key.to_sym)
|
|
|
|
end
|
2010-10-14 14:04:02 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2010-10-14 15:16:20 -04:00
|
|
|
# Clean up the default path_prefix. It will be automatically set by Devise.
|
|
|
|
OmniAuth.config.path_prefix = nil
|
|
|
|
|
2010-10-14 19:15:17 -04:00
|
|
|
OmniAuth.config.on_failure = Proc.new do |env, key|
|
|
|
|
env['devise.mapping'] = Devise::Mapping.find_by_path!(env['PATH_INFO'])
|
|
|
|
controller_klass = "#{env['devise.mapping'].controllers[:omniauth_callbacks].camelize}Controller"
|
|
|
|
controller_klass.constantize.action(:failure).call(env)
|
|
|
|
end
|
|
|
|
|
2010-10-14 14:04:02 -04:00
|
|
|
module Devise
|
|
|
|
module OmniAuth
|
|
|
|
autoload :Config, "devise/omniauth/config"
|
|
|
|
autoload :UrlHelpers, "devise/omniauth/url_helpers"
|
|
|
|
autoload :TestHelpers, "devise/omniauth/test_helpers"
|
|
|
|
|
|
|
|
class << self
|
2010-10-14 17:46:10 -04:00
|
|
|
delegate :short_circuit_authorizers!, :unshort_circuit_authorizers!,
|
|
|
|
:test_mode!, :stub!, :reset_stubs!, :to => "Devise::OmniAuth::TestHelpers"
|
2010-10-14 14:04:02 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|