forked from External/greenlight
passing params to the launcher gem
This commit is contained in:
parent
930ed809f5
commit
67c32a396f
2
Gemfile
2
Gemfile
|
@ -47,6 +47,7 @@ gem 'bcrypt', '~> 3.1.7'
|
||||||
gem 'omniauth'
|
gem 'omniauth'
|
||||||
gem 'omniauth-twitter'
|
gem 'omniauth-twitter'
|
||||||
gem 'omniauth-google-oauth2'
|
gem 'omniauth-google-oauth2'
|
||||||
|
gem "omniauth-bn-launcher", git: "https://github.com/blindsidenetworks/omniauth-bn-launcher.git"
|
||||||
|
|
||||||
# BigBlueButton API wrapper.
|
# BigBlueButton API wrapper.
|
||||||
gem 'bigbluebutton-api-ruby'
|
gem 'bigbluebutton-api-ruby'
|
||||||
|
@ -64,7 +65,6 @@ gem 'rubocop', require: false
|
||||||
group :production do
|
group :production do
|
||||||
# Use a postgres database in production.
|
# Use a postgres database in production.
|
||||||
gem 'pg', '~> 0.18'
|
gem 'pg', '~> 0.18'
|
||||||
gem "omniauth-bn-launcher", git: "https://github.com/blindsidenetworks/omniauth-bn-launcher.git"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
group :development, :test do
|
group :development, :test do
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
GIT
|
GIT
|
||||||
remote: https://github.com/blindsidenetworks/omniauth-bn-launcher.git
|
remote: https://github.com/blindsidenetworks/omniauth-bn-launcher.git
|
||||||
revision: c272a928c41966ec3f43d841e372838be0465a8d
|
revision: 6b79f38114a1c9e2dde4958ad5a4f02443c9c023
|
||||||
specs:
|
specs:
|
||||||
omniauth-bn-launcher (0.1.0)
|
omniauth-bn-launcher (0.1.0)
|
||||||
omniauth (~> 1.3, >= 1.3.2)
|
omniauth (~> 1.3, >= 1.3.2)
|
||||||
|
|
|
@ -5,9 +5,6 @@ class MainController < ApplicationController
|
||||||
|
|
||||||
# GET /
|
# GET /
|
||||||
def index
|
def index
|
||||||
if Rails.env.production? && !current_user
|
|
||||||
redirect_to "#{Rails.configuration.relative_url_root}/auth/bn_launcher"
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
@ -22,4 +22,15 @@ module SessionsHelper
|
||||||
def current_user
|
def current_user
|
||||||
@current_user ||= User.find_by(id: session[:user_id])
|
@current_user ||= User.find_by(id: session[:user_id])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def parse_customer_name(hostname)
|
||||||
|
provider = hostname.split('.')
|
||||||
|
provider.first == 'www' ? provider.second : provider.first
|
||||||
|
end
|
||||||
|
|
||||||
|
def set_omniauth_options(env)
|
||||||
|
env['omniauth.strategy'].options[:customer] = parse_customer_name env["SERVER_NAME"]
|
||||||
|
env['omniauth.strategy'].options[:gl_redirect_url] = env["rack.url_scheme"] + "://" + env["SERVER_NAME"] + ":" + env["SERVER_PORT"]
|
||||||
|
env['omniauth.strategy'].options[:default_callback_url] = Rails.configuration.gl_callback_url
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -44,7 +44,11 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<% else %>
|
<% else %>
|
||||||
<%= link_to "Login", "#loginModal", :class => "btn btn-pill btn-outline-primary mx-2", "data-toggle": "modal" %>
|
<% if Rails.configuration.omniauth_bn_launcher && !current_user %>
|
||||||
|
<%= link_to "Login", "#{Rails.configuration.relative_url_root}/auth/bn_launcher", :class => "btn btn-pill btn-outline-primary mx-2" %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to "Login", "#loginModal", :class => "btn btn-pill btn-outline-primary mx-2", "data-toggle": "modal" %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<% if allow_user_signup? %>
|
<% if allow_user_signup? %>
|
||||||
<%= link_to "Signup", signup_path, :class => "btn btn-pill btn-outline-primary mx-2" %>
|
<%= link_to "Signup", signup_path, :class => "btn btn-pill btn-outline-primary mx-2" %>
|
||||||
|
|
12
bin/start
12
bin/start
|
@ -1,9 +1,11 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
while [ "$RAILS_ENV" = "production" ] && ! curl http://$DB_HOST:5432/ 2>&1 | grep '52'
|
if [ "$RAILS_ENV" = "production" ]; then
|
||||||
do
|
while ! curl http://$DB_HOST:${DB_PORT:-5432}/ 2>&1 | grep '52'
|
||||||
echo "Waiting for postgres to start up ..."
|
do
|
||||||
sleep 1
|
echo "Waiting for postgres to start up ..."
|
||||||
done
|
sleep 1
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
bundle exec rake db:create
|
bundle exec rake db:create
|
||||||
bundle exec rake db:migrate
|
bundle exec rake db:migrate
|
||||||
|
|
|
@ -18,7 +18,8 @@ module Greenlight
|
||||||
config.exceptions_app = routes
|
config.exceptions_app = routes
|
||||||
|
|
||||||
config.loadbalanced_configuration = ENV["LOADBALANCER_ENDPOINT"].present? && ENV["LOADBALANCER_SECRET"].present?
|
config.loadbalanced_configuration = ENV["LOADBALANCER_ENDPOINT"].present? && ENV["LOADBALANCER_SECRET"].present?
|
||||||
|
# The default callback url that bn launcher will redirect to
|
||||||
|
config.gl_callback_url = ENV["GL_CALLBACK_URL"]
|
||||||
# Setup BigBlueButton configuration.
|
# Setup BigBlueButton configuration.
|
||||||
if config.loadbalanced_configuration
|
if config.loadbalanced_configuration
|
||||||
# Fetch credentials from a loadbalancer based on provider.
|
# Fetch credentials from a loadbalancer based on provider.
|
||||||
|
|
|
@ -73,6 +73,9 @@ Rails.application.configure do
|
||||||
# Use default logging formatter so that PID and timestamp are not suppressed.
|
# Use default logging formatter so that PID and timestamp are not suppressed.
|
||||||
config.log_formatter = ::Logger::Formatter.new
|
config.log_formatter = ::Logger::Formatter.new
|
||||||
|
|
||||||
|
# rails runs over http in production. Turning OpenSSL verify off to skip oauth2 verification of certs. This is done on nginx level
|
||||||
|
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
|
||||||
|
|
||||||
# Use a different logger for distributed setups.
|
# Use a different logger for distributed setups.
|
||||||
# require 'syslog/logger'
|
# require 'syslog/logger'
|
||||||
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
|
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
|
||||||
|
|
|
@ -6,17 +6,28 @@ Rails.application.config.providers = [:google, :twitter, :bn_launcher]
|
||||||
# Set which providers are configured.
|
# Set which providers are configured.
|
||||||
Rails.application.config.omniauth_google = ENV['GOOGLE_OAUTH2_ID'].present? && ENV['GOOGLE_OAUTH2_SECRET'].present?
|
Rails.application.config.omniauth_google = ENV['GOOGLE_OAUTH2_ID'].present? && ENV['GOOGLE_OAUTH2_SECRET'].present?
|
||||||
Rails.application.config.omniauth_twitter = ENV['TWITTER_ID'].present? && ENV['TWITTER_SECRET'].present?
|
Rails.application.config.omniauth_twitter = ENV['TWITTER_ID'].present? && ENV['TWITTER_SECRET'].present?
|
||||||
Rails.application.config.omniauth_bn_launcher = (ENV["USE_LOADBALANCED_CONFIGURATION"] == "true")
|
Rails.application.config.omniauth_bn_launcher = Rails.configuration.loadbalanced_configuration
|
||||||
|
Rails.application.config.omniauth_bn_launcher = ENV["LOADBALANCER_ENDPOINT"].present? && ENV["LOADBALANCER_SECRET"].present?
|
||||||
|
|
||||||
|
SETUP_PROC = lambda do |env|
|
||||||
|
SessionsController.helpers.set_omniauth_options env
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
# Setup the Omniauth middleware.
|
# Setup the Omniauth middleware.
|
||||||
Rails.application.config.middleware.use OmniAuth::Builder do
|
Rails.application.config.middleware.use OmniAuth::Builder do
|
||||||
if Rails.env.production?
|
if Rails.configuration.omniauth_bn_launcher
|
||||||
provider :bn_launcher,
|
provider :bn_launcher,
|
||||||
client_id: ENV['CLIENT_ID'],
|
client_id: ENV['CLIENT_ID'],
|
||||||
client_secret: ENV['CLIENT_SECRET'],
|
client_secret: ENV['CLIENT_SECRET'],
|
||||||
client_options: {site: ENV['BN_LAUNCHER_REDIRECT_URI']}
|
client_options: {site: ENV['BN_LAUNCHER_REDIRECT_URI']},
|
||||||
|
:setup => SETUP_PROC
|
||||||
end
|
end
|
||||||
|
# provider :bn_launcher,
|
||||||
|
# client_id: '123',
|
||||||
|
# client_secret: '456',
|
||||||
|
# client_options: {site: "http://demo.gl.greenlight.com:3000"},
|
||||||
|
# :setup => SETUP_PROC
|
||||||
|
|
||||||
provider :twitter, ENV['TWITTER_ID'], ENV['TWITTER_SECRET']
|
provider :twitter, ENV['TWITTER_ID'], ENV['TWITTER_SECRET']
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue