forked from External/greenlight
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:
parent
c07cfd0d93
commit
2b0301da38
2
Gemfile
2
Gemfile
|
@ -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
|
||||
end
|
||||
# Environment configuration.
|
||||
gem 'dotenv-rails'
|
||||
end
|
||||
|
||||
group :test do
|
||||
# Include Rspec and other testing utilities.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 }
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue