lib/ditty/services/authentication.rb in ditty-0.6.0 vs lib/ditty/services/authentication.rb in ditty-0.7.0.pre.rc1
- old
+ new
@@ -1,27 +1,37 @@
require 'ditty/models/identity'
-require 'ditty/controllers/main'
+require 'ditty/controllers/auth'
require 'ditty/services/settings'
require 'ditty/services/logger'
require 'omniauth'
OmniAuth.config.logger = Ditty::Services::Logger.instance
+OmniAuth.config.path_prefix = "#{Ditty::Application.map_path}/auth"
OmniAuth.config.on_failure = proc { |env|
+ next [400, {}, []] if env['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'
OmniAuth::FailureEndpoint.new(env).redirect_to_failure
}
module Ditty
module Services
module Authentication
class << self
+ def [](key)
+ config[key]
+ end
+
def providers
- config.keys
+ config.compact.keys
end
def setup
providers.each do |provider|
- require "omniauth/#{provider}"
+ begin
+ require "omniauth/#{provider}"
+ rescue LoadError
+ require "omniauth-#{provider}"
+ end
end
end
def config
default.merge Ditty::Services::Settings.values(:authentication) || {}
@@ -35,16 +45,15 @@
{
identity: {
arguments: [
{
fields: [:username],
- callback_path: '/auth/identity/callback',
model: Ditty::Identity,
- on_login: Ditty::Main,
- on_registration: Ditty::Main,
+ on_login: Ditty::Auth,
+ on_registration: Ditty::Auth,
locate_conditions: ->(req) { { username: req['username'] } }
}
- ],
+ ]
}
}
end
end
end