Module: Aerogel::Auth
- Defined in:
- lib/aerogel/users/auth.rb
Constant Summary collapse
- PROVIDERS =
PROVIDERS = {
password: { name: "Password", gem: nil }, github: { name: "GitHub", gem: 'omniauth-github' }, facebook: { name: "Facebook", gem: 'omniauth-facebook' }, twitter: { name: "Twitter", gem: 'omniauth-twitter' }, linkedin: { name: "LinkedIn", gem: 'omniauth-linkedin-oauth2' }, vkontakte: { name: "Vkontakte", gem: 'omniauth-vkontakte' } }
nil
Class Method Summary collapse
-
.enabled_providers ⇒ Object
Returns list of enabled omniauth providers as symbols.
-
.load_middleware(app) ⇒ Object
Loads OmniAuth middleware with enabled providers.
-
.load_provider_gems ⇒ Object
Loads gems for enabled providers.
-
.providers ⇒ Object
Returns hash of registered omniauth providers.
Class Method Details
.enabled_providers ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/aerogel/users/auth.rb', line 28 def self.enabled_providers return @enabled_providers unless @enabled_providers.nil? @enabled_providers = [] providers.each do |provider, opts| # always enable :password next unless provider == :password || Aerogel.config.auth.send( :"#{provider}?" ) @enabled_providers << provider end @enabled_providers end |
.load_middleware(app) ⇒ Object
Loads OmniAuth middleware with enabled providers.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/aerogel/users/auth.rb', line 51 def self.load_middleware( app ) load_provider_gems app.use OmniAuth::Builder do # puts "** configuring OmniAuth" provider :password, model: User Aerogel::Auth.enabled_providers.each do |provider_key| next if provider_key == :password provider_config = app.config.auth.send(provider_key) provider provider_key, provider_config.api_key!, provider_config.api_secret! # puts "** configuring #{provider_key}: #{provider_config.api_key!}" end on_failure {|env| OmniAuth::FailureEndpointEx.new(env).redirect_to_failure } end end |
.load_provider_gems ⇒ Object
Loads gems for enabled providers.
41 42 43 44 45 46 47 |
# File 'lib/aerogel/users/auth.rb', line 41 def self.load_provider_gems enabled_providers.each do |provider_key| gem_name = providers[provider_key][:gem_name] # puts "** requiring #{provider_key}: #{gem_name}" require gem_name if gem_name end end |
.providers ⇒ Object
Returns hash of registered omniauth providers.
18 19 20 21 |
# File 'lib/aerogel/users/auth.rb', line 18 def self.providers return @providers unless @providers.nil? @providers = Aerogel.config.auth.providers.to_hash end |