diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index c0628bd9..8b30f130 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -14,4 +14,16 @@ module ApplicationHelper end translations[:client] end + + def omniauth_providers_configured(provider = nil) + if provider + Rails.configuration.send("omniauth_#{provider}") + else + providers = [] + Rails.configuration.providers.each do |provider| + providers.push(provider) if Rails.configuration.send("omniauth_#{provider}") + end + providers + end + end end diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 6acd914f..675de76b 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -32,14 +32,20 @@ <%= t('are_you', name: @user.username) %> | <%= link_to t('login'), "/auth/#{@user.provider}" %> <% else %> - - <%= link_to('/auth/twitter', :class => "btn icon btn-lg btn-social-icon btn-twitter") do %> - + <% if omniauth_providers_configured.present? %> + <% end %> - <%= link_to('/auth/google', :class => "btn icon btn-lg btn-social-icon btn-google") do %> - + <% if omniauth_providers_configured(:twitter) %> + <%= link_to('/auth/twitter', :class => "btn icon btn-lg btn-social-icon btn-twitter") do %> + + <% end %> + <% end %> + <% if omniauth_providers_configured(:google) %> + <%= link_to('/auth/google', :class => "btn icon btn-lg btn-social-icon btn-google") do %> + + <% end %> <% end %> <% end %> diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb index 41726b73..0a6efe2f 100644 --- a/config/initializers/omniauth.rb +++ b/config/initializers/omniauth.rb @@ -1,3 +1,9 @@ +Rails.application.config.providers = [:google, :twitter] + +Rails.application.config.omniauth_google = ENV['GOOGLE_OAUTH2_ID'].present? + +Rails.application.config.omniauth_twitter = ENV['TWITTER_ID'].present? + Rails.application.config.middleware.use OmniAuth::Builder do provider :twitter, ENV['TWITTER_ID'], ENV['TWITTER_SECRET'] provider :google_oauth2, ENV['GOOGLE_OAUTH2_ID'], ENV['GOOGLE_OAUTH2_SECRET'],