GRN-93: Fix for issue with excesive requests to LB (#447)

* Fix for issue with excesive requests to lb

* Fixed issue with rspec on users not passing when run alone

* Include dotenv in production
This commit is contained in:
Jesus Federico 2019-04-10 10:12:32 -04:00 committed by GitHub
parent c07cfd0d93
commit 2b0301da38
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 17 additions and 10 deletions

View File

@ -78,9 +78,9 @@ end
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platform: :mri
# Environment configuration.
gem 'dotenv-rails'
end
# Environment configuration.
gem 'dotenv-rails'
group :test do
# Include Rspec and other testing utilities.

View File

@ -111,7 +111,7 @@ class ApplicationController < ActionController::Base
@user_domain = if Rails.env.test? || !Rails.configuration.loadbalanced_configuration
"greenlight"
else
parse_user_domain(request.env["SERVER_NAME"])
parse_user_domain(request.host)
end
end
helper_method :set_user_domain

View File

@ -84,7 +84,8 @@ module ApplicationHelper
begin
provider_info = retrieve_provider_info(@user_domain, 'api2', 'getUserGreenlightCredentials')
provider_info['provider'] == 'greenlight'
rescue
rescue => ex
logger.info ex
false
end
end

View File

@ -54,7 +54,9 @@ module SessionsHelper
end
def parse_user_domain(hostname)
hostname.split('.').first
return hostname.split('.').first unless Rails.configuration.url_host
return '' unless hostname.include?(Rails.configuration.url_host)
hostname.chomp(Rails.configuration.url_host).chomp('.')
end
def omniauth_options(env)

View File

@ -17,7 +17,7 @@
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
class UserMailer < ApplicationMailer
default from: Rails.configuration.email_sender
default from: Rails.configuration.smtp_sender
def verify_email(user, url)
@user = user

View File

@ -185,6 +185,7 @@ class User < ApplicationRecord
end
def greenlight_account?
return true unless provider # For testing cases when provider is set to null
return provider == "greenlight" unless Rails.configuration.loadbalanced_configuration
# No need to retrive the provider info if the provider is whitelisted
return true if launcher_allow_user_signup_whitelisted?(provider)

View File

@ -68,10 +68,13 @@ module Greenlight
# Fix endpoint format if required.
config.loadbalancer_endpoint += "/" unless config.bigbluebutton_endpoint.ends_with?("/")
config.loadbalancer_endpoint = config.loadbalancer_endpoint.chomp("api/")
# Configure which settings are available to user on room creation/edit after creation
config.url_host = ENV['URL_HOST'] || ''
end
# Specify the email address that all mail is sent from
config.email_sender = ENV['EMAIL_SENDER'].present? ? ENV['EMAIL_SENDER'] : "notifications@example.com"
config.smtp_sender = ENV['SMTP_SENDER'] || "notifications@example.com"
# Determine if GreenLight should enable email verification
config.enable_email_verification = (ENV['ALLOW_MAIL_NOTIFICATIONS'] == "true")

View File

@ -31,7 +31,7 @@ module BbbApi
# Rereives info from the loadbalanced in regards to a Provider (or tenant).
def retrieve_provider_info(provider, api = 'api', route = 'getUser')
# Include Omniauth accounts under the Greenlight provider.
provider ||= 'greenlight'
raise "Provider not included." if !provider || provider.empty?
# Build the URI.
uri = encode_bbb_url(

View File

@ -103,7 +103,7 @@ SMTP_AUTH=
SMTP_STARTTLS_AUTO=
# Specify the email address that all mail is sent from
EMAIL_SENDER=
SMTP_SENDER=
# Prefix for the applications root URL.
# Useful for deploying the application to a subdirectory, which is highly recommended

View File

@ -19,7 +19,6 @@
FactoryBot.define do
factory :user do
password = Faker::Internet.password(8)
provider { %w(google twitter).sample }
uid { rand(10**8) }
name { Faker::Name.first_name }

View File

@ -17,6 +17,7 @@
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
require "rails_helper"
require 'bigbluebutton_api'
describe User, type: :model do
before do