module Ditty::Services::Authentication
Public Class Methods
[](key)
click to toggle source
# File lib/ditty/services/authentication.rb, line 20 def [](key) config[key] end
config()
click to toggle source
# File lib/ditty/services/authentication.rb, line 48 def config @config ||= default.merge(::Ditty::Services::Settings.values(:authentication) || {}) end
default()
click to toggle source
# File lib/ditty/services/authentication.rb, line 57 def default require 'ditty/models/identity' require 'ditty/controllers/auth_controller' { identity: { available: true, arguments: [ { fields: [:username], model: ::Ditty::Identity, on_login: ::Ditty::AuthController, on_registration: ::Ditty::AuthController, locate_conditions: ->(req) { { username: req['username'] } } } ] } } end
providers()
click to toggle source
# File lib/ditty/services/authentication.rb, line 24 def providers config.compact.keys.select { |e| config[e][:available] && config[e][:enabled] != false } end
provides?(provider)
click to toggle source
# File lib/ditty/services/authentication.rb, line 52 def provides?(provider) provider = provider.to_sym providers.include?(provider) && config[provider][:available] && config.dig(provider, :enabled) != false end
setup()
click to toggle source
# File lib/ditty/services/authentication.rb, line 28 def setup config.compact.each_key do |provider| ::Ditty::Services::Logger.debug "Loading authentication provider #{provider}" req = if config.dig(provider, :require) [config[provider][:require]] else ["omniauth/#{provider}", "omniauth-#{provider}"] end req.find do |e| require e config[provider][:available] = true true rescue LoadError ::Ditty::Services::Logger.warn "Could not load authentication provider #{provider} using #{e}" config[provider][:available] = false false end end end