forked from External/greenlight
master #1
20
.rubocop.yml
20
.rubocop.yml
|
@ -5,9 +5,7 @@ AllCops:
|
|||
DisabledByDefault: false
|
||||
TargetRubyVersion: 2.5
|
||||
|
||||
# Gems within groups in the Gemfile should be alphabetically sorted.
|
||||
Bundler/OrderedGems:
|
||||
Enabled: false
|
||||
NewCops: enable
|
||||
|
||||
Style/BlockDelimiters:
|
||||
Enabled: false
|
||||
|
@ -138,7 +136,7 @@ Metrics/AbcSize:
|
|||
# A complexity metric that is strongly correlated to the number
|
||||
# of test cases needed to validate a method.
|
||||
Metrics/CyclomaticComplexity:
|
||||
Max: 17
|
||||
Max: 20
|
||||
|
||||
# Checks for method parameter names that contain capital letters, end in numbers, or do not meet a minimal length.
|
||||
Naming/MethodParameterName:
|
||||
|
@ -177,3 +175,17 @@ Style/HashTransformValues:
|
|||
Style/SlicingWithRange:
|
||||
Enabled: true
|
||||
|
||||
Style/OptionalBooleanParameter:
|
||||
Enabled: false
|
||||
|
||||
Lint/DuplicateBranch:
|
||||
Enabled: false
|
||||
|
||||
Lint/ConstantDefinitionInBlock:
|
||||
Enabled: false
|
||||
|
||||
Lint/EmptyBlock:
|
||||
Enabled: false
|
||||
|
||||
Style/HashLikeCase:
|
||||
Enabled: false
|
163
Gemfile
163
Gemfile
|
@ -8,139 +8,72 @@ git_source(:github) do |repo_name|
|
|||
end
|
||||
|
||||
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
||||
gem 'rails', '~> 5.2.4.4'
|
||||
|
||||
# Use Puma as the app server
|
||||
gem 'puma', '~> 3.12'
|
||||
|
||||
# Use SCSS for stylesheets
|
||||
gem 'sassc-rails'
|
||||
|
||||
# Use Uglifier as compressor for JavaScript assets
|
||||
gem 'uglifier', '>= 1.3.0'
|
||||
|
||||
# Use CoffeeScript for .coffee assets and views
|
||||
gem 'coffee-rails', '~> 4.2'
|
||||
|
||||
# See https://github.com/rails/execjs#readme for more supported runtimes
|
||||
# gem 'mini_racer', platforms: :ruby
|
||||
|
||||
# Use jquery as the JavaScript library
|
||||
gem 'jquery-rails', '~> 4.4'
|
||||
gem 'jquery-ui-rails'
|
||||
|
||||
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
|
||||
gem 'turbolinks', '~> 5'
|
||||
|
||||
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
|
||||
gem 'jbuilder', '~> 2.5'
|
||||
|
||||
# Use Redis adapter to run Action Cable in production
|
||||
# gem 'redis', '~> 3.0'
|
||||
|
||||
# Use ActiveModel has_secure_password
|
||||
gem 'aws-sdk-s3', '~> 1.88.1'
|
||||
gem 'bcrypt', '~> 3.1.7'
|
||||
|
||||
# Reduces boot times through caching; required in config/boot.rb
|
||||
gem 'bootsnap', '>= 1.1.0', require: false
|
||||
|
||||
gem 'sprockets', '< 4.0.0'
|
||||
|
||||
# Authentication.
|
||||
gem 'omniauth'
|
||||
gem 'omniauth-twitter'
|
||||
gem 'omniauth-google-oauth2'
|
||||
gem 'omniauth_openid_connect'
|
||||
gem 'omniauth-bn-launcher', '~> 0.1.3'
|
||||
gem 'net-ldap'
|
||||
gem 'bn-ldap-authentication', '~> 0.1.4'
|
||||
gem 'omniauth-bn-office365', '~> 0.1.1'
|
||||
|
||||
# BigBlueButton API wrapper.
|
||||
gem 'bigbluebutton-api-ruby', git: 'https://github.com/mconf/bigbluebutton-api-ruby.git', branch: 'master'
|
||||
|
||||
# Front-end.
|
||||
gem 'bn-ldap-authentication', '~> 0.1.4'
|
||||
gem 'bootsnap', '~> 1.7.2', require: false
|
||||
gem 'bootstrap', '~> 4.3.1'
|
||||
gem 'tabler-rubygem', git: 'https://github.com/blindsidenetworks/tabler-rubygem.git', tag: '0.1.4.1'
|
||||
gem 'pagy'
|
||||
gem 'cancancan', '~> 2.3.0'
|
||||
gem 'coveralls', '~> 0.8.23', require: false
|
||||
gem 'font-awesome-sass', '~> 5.9.0'
|
||||
|
||||
# For detecting the users preferred language.
|
||||
gem 'http_accept_language'
|
||||
|
||||
# Use Capistrano for deployment
|
||||
# gem 'capistrano-rails', group: :development
|
||||
|
||||
# Markdown parsing.
|
||||
gem 'redcarpet'
|
||||
|
||||
# For limiting access based on user roles
|
||||
gem 'cancancan', '~> 2.0'
|
||||
|
||||
# Active Storage gems
|
||||
gem 'aws-sdk-s3', '~> 1.75'
|
||||
gem 'google-cloud-storage', '~> 1.26'
|
||||
|
||||
gem 'pluck_to_hash', '~> 1.0.2'
|
||||
|
||||
gem 'google-cloud-storage', '~> 1.30.0'
|
||||
gem 'http_accept_language', '~> 2.1.1'
|
||||
gem 'i18n-language-mapping', '~> 0.1.1'
|
||||
gem 'jbuilder', '~> 2.11.2'
|
||||
gem 'jquery-rails', '~> 4.4.0'
|
||||
gem 'jquery-ui-rails', '~> 6.0.1'
|
||||
gem 'local_time', '~> 2.1.0'
|
||||
|
||||
# Use a sqlite database in test and development.
|
||||
gem 'net-ldap', '~> 0.17.0'
|
||||
gem 'omniauth', '~> 1.9.1'
|
||||
gem 'omniauth-bn-launcher', '~> 0.1.3'
|
||||
gem 'omniauth-bn-office365', '~> 0.1.1'
|
||||
gem 'omniauth-google-oauth2', '~> 0.7.0'
|
||||
gem 'omniauth_openid_connect', '~> 0.3.5'
|
||||
gem 'omniauth-twitter', '~> 1.4.0'
|
||||
gem 'pagy', '~> 3.11.0'
|
||||
gem 'pluck_to_hash', '~> 1.0.2'
|
||||
gem 'puma', '~> 3.12.6'
|
||||
gem 'rails', '~> 5.2.4.4'
|
||||
gem 'random_password', '~> 0.1.1'
|
||||
gem "recaptcha", '~> 5.7.0'
|
||||
gem 'redcarpet', '~> 3.5.1'
|
||||
gem 'remote_syslog_logger', '~> 1.0.4'
|
||||
gem 'rubocop', '~> 1.10.0'
|
||||
gem 'sassc-rails', '~> 2.1.2'
|
||||
gem 'sprockets', '~> 3.7.2'
|
||||
gem 'sqlite3', '~> 1.3.6'
|
||||
gem 'tabler-rubygem', git: 'https://github.com/blindsidenetworks/tabler-rubygem.git', tag: '0.1.4.1'
|
||||
gem 'turbolinks', '~> 5.2.1'
|
||||
gem 'tzinfo-data', '~> 1.2021.1'
|
||||
gem 'uglifier', '~> 4.2.0'
|
||||
|
||||
group :production do
|
||||
# Use a postgres database in production.
|
||||
gem 'hiredis', '~> 0.6.3'
|
||||
gem "lograge", '~> 0.11.2'
|
||||
gem 'pg', '~> 0.18'
|
||||
gem 'sequel'
|
||||
|
||||
# For a better logging library in production
|
||||
gem "lograge"
|
||||
|
||||
# Use for the cache store in production
|
||||
gem 'redis'
|
||||
gem 'hiredis'
|
||||
gem 'redis', '~> 4.2.5'
|
||||
gem 'sequel', '~> 5.41.0'
|
||||
end
|
||||
|
||||
# Ruby linting.
|
||||
gem 'rubocop'
|
||||
|
||||
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'
|
||||
gem 'byebug', '~> 11.1', platform: :mri
|
||||
gem 'dotenv-rails', '~> 2.7'
|
||||
end
|
||||
|
||||
group :test do
|
||||
# Include Rspec and other testing utilities.
|
||||
gem 'action-cable-testing', '~> 0.6'
|
||||
gem "factory_bot_rails", '~> 6.1'
|
||||
gem 'faker', '~> 2.16'
|
||||
gem 'rails-controller-testing', '~> 1.0'
|
||||
gem 'rspec-rails', '~> 3.7'
|
||||
gem 'action-cable-testing'
|
||||
gem 'rails-controller-testing'
|
||||
gem 'shoulda-matchers', '~> 3.1'
|
||||
gem 'faker'
|
||||
gem "factory_bot_rails"
|
||||
gem 'webmock'
|
||||
gem 'webmock', '~> 3.11'
|
||||
end
|
||||
|
||||
group :development do
|
||||
# Access an IRB console on exception pages or by using <%= console %> anywhere in the code.
|
||||
gem 'web-console', '>= 3.3.0'
|
||||
gem 'listen', '~> 3.0.5'
|
||||
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
|
||||
gem 'spring'
|
||||
gem 'spring-watcher-listen', '~> 2.0.0'
|
||||
gem 'listen', '~> 3.0'
|
||||
gem 'spring', '~> 2.1'
|
||||
gem 'spring-watcher-listen', '~> 2.0'
|
||||
gem 'web-console', '~> 3.7'
|
||||
end
|
||||
|
||||
gem 'remote_syslog_logger'
|
||||
|
||||
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
gem 'tzinfo-data'
|
||||
|
||||
gem 'coveralls', require: false
|
||||
|
||||
gem 'random_password'
|
||||
|
||||
# Adds helpers for the Google reCAPTCHA API
|
||||
gem "recaptcha"
|
||||
|
||||
gem 'i18n-language-mapping', '~> 0.1.1'
|
||||
|
|
353
Gemfile.lock
353
Gemfile.lock
|
@ -25,43 +25,43 @@ GEM
|
|||
specs:
|
||||
action-cable-testing (0.6.1)
|
||||
actioncable (>= 5.0)
|
||||
actioncable (5.2.4.4)
|
||||
actionpack (= 5.2.4.4)
|
||||
actioncable (5.2.4.5)
|
||||
actionpack (= 5.2.4.5)
|
||||
nio4r (~> 2.0)
|
||||
websocket-driver (>= 0.6.1)
|
||||
actionmailer (5.2.4.4)
|
||||
actionpack (= 5.2.4.4)
|
||||
actionview (= 5.2.4.4)
|
||||
activejob (= 5.2.4.4)
|
||||
actionmailer (5.2.4.5)
|
||||
actionpack (= 5.2.4.5)
|
||||
actionview (= 5.2.4.5)
|
||||
activejob (= 5.2.4.5)
|
||||
mail (~> 2.5, >= 2.5.4)
|
||||
rails-dom-testing (~> 2.0)
|
||||
actionpack (5.2.4.4)
|
||||
actionview (= 5.2.4.4)
|
||||
activesupport (= 5.2.4.4)
|
||||
actionpack (5.2.4.5)
|
||||
actionview (= 5.2.4.5)
|
||||
activesupport (= 5.2.4.5)
|
||||
rack (~> 2.0, >= 2.0.8)
|
||||
rack-test (>= 0.6.3)
|
||||
rails-dom-testing (~> 2.0)
|
||||
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
||||
actionview (5.2.4.4)
|
||||
activesupport (= 5.2.4.4)
|
||||
actionview (5.2.4.5)
|
||||
activesupport (= 5.2.4.5)
|
||||
builder (~> 3.1)
|
||||
erubi (~> 1.4)
|
||||
rails-dom-testing (~> 2.0)
|
||||
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
||||
activejob (5.2.4.4)
|
||||
activesupport (= 5.2.4.4)
|
||||
activejob (5.2.4.5)
|
||||
activesupport (= 5.2.4.5)
|
||||
globalid (>= 0.3.6)
|
||||
activemodel (5.2.4.4)
|
||||
activesupport (= 5.2.4.4)
|
||||
activerecord (5.2.4.4)
|
||||
activemodel (= 5.2.4.4)
|
||||
activesupport (= 5.2.4.4)
|
||||
activemodel (5.2.4.5)
|
||||
activesupport (= 5.2.4.5)
|
||||
activerecord (5.2.4.5)
|
||||
activemodel (= 5.2.4.5)
|
||||
activesupport (= 5.2.4.5)
|
||||
arel (>= 9.0)
|
||||
activestorage (5.2.4.4)
|
||||
actionpack (= 5.2.4.4)
|
||||
activerecord (= 5.2.4.4)
|
||||
activestorage (5.2.4.5)
|
||||
actionpack (= 5.2.4.5)
|
||||
activerecord (= 5.2.4.5)
|
||||
marcel (~> 0.3.1)
|
||||
activesupport (5.2.4.4)
|
||||
activesupport (5.2.4.5)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 0.7, < 2)
|
||||
minitest (~> 5.1)
|
||||
|
@ -70,32 +70,32 @@ GEM
|
|||
public_suffix (>= 2.0.2, < 5.0)
|
||||
aes_key_wrap (1.1.0)
|
||||
arel (9.0.0)
|
||||
ast (2.4.0)
|
||||
ast (2.4.2)
|
||||
attr_required (1.0.1)
|
||||
autoprefixer-rails (9.7.6)
|
||||
autoprefixer-rails (10.2.4.0)
|
||||
execjs
|
||||
aws-eventstream (1.1.0)
|
||||
aws-partitions (1.343.0)
|
||||
aws-sdk-core (3.104.1)
|
||||
aws-partitions (1.429.0)
|
||||
aws-sdk-core (3.112.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
aws-partitions (~> 1, >= 1.239.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
jmespath (~> 1.0)
|
||||
aws-sdk-kms (1.36.0)
|
||||
aws-sdk-core (~> 3, >= 3.99.0)
|
||||
aws-sdk-kms (1.42.0)
|
||||
aws-sdk-core (~> 3, >= 3.112.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-s3 (1.75.0)
|
||||
aws-sdk-core (~> 3, >= 3.104.1)
|
||||
aws-sdk-s3 (1.88.1)
|
||||
aws-sdk-core (~> 3, >= 3.112.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sigv4 (1.2.1)
|
||||
aws-sigv4 (1.2.2)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
bcrypt (3.1.13)
|
||||
bcrypt (3.1.16)
|
||||
bindata (2.4.8)
|
||||
bindex (0.8.1)
|
||||
bn-ldap-authentication (0.1.4)
|
||||
net-ldap (~> 0)
|
||||
bootsnap (1.4.6)
|
||||
bootsnap (1.7.2)
|
||||
msgpack (~> 1.0)
|
||||
bootstrap (4.3.1)
|
||||
autoprefixer-rails (>= 9.1.0)
|
||||
|
@ -105,71 +105,74 @@ GEM
|
|||
byebug (11.1.3)
|
||||
cancancan (2.3.0)
|
||||
childprocess (4.0.0)
|
||||
coffee-rails (4.2.2)
|
||||
coffee-script (>= 2.2.0)
|
||||
railties (>= 4.0.0)
|
||||
coffee-script (2.4.1)
|
||||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.12.2)
|
||||
concurrent-ruby (1.1.7)
|
||||
concurrent-ruby (1.1.8)
|
||||
coveralls (0.8.23)
|
||||
json (>= 1.8, < 3)
|
||||
simplecov (~> 0.16.1)
|
||||
term-ansicolor (~> 1.3)
|
||||
thor (>= 0.19.4, < 2.0)
|
||||
tins (~> 1.6)
|
||||
crack (0.4.3)
|
||||
safe_yaml (~> 1.0.0)
|
||||
crack (0.4.5)
|
||||
rexml
|
||||
crass (1.0.6)
|
||||
declarative (0.0.20)
|
||||
declarative-option (0.1.0)
|
||||
diff-lcs (1.3)
|
||||
digest-crc (0.6.1)
|
||||
rake (~> 13.0)
|
||||
docile (1.3.2)
|
||||
dotenv (2.7.5)
|
||||
dotenv-rails (2.7.5)
|
||||
dotenv (= 2.7.5)
|
||||
railties (>= 3.2, < 6.1)
|
||||
erubi (1.9.0)
|
||||
diff-lcs (1.4.4)
|
||||
digest-crc (0.6.3)
|
||||
rake (>= 12.0.0, < 14.0.0)
|
||||
docile (1.3.5)
|
||||
dotenv (2.7.6)
|
||||
dotenv-rails (2.7.6)
|
||||
dotenv (= 2.7.6)
|
||||
railties (>= 3.2)
|
||||
erubi (1.10.0)
|
||||
execjs (2.7.0)
|
||||
factory_bot (5.2.0)
|
||||
activesupport (>= 4.2.0)
|
||||
factory_bot_rails (5.2.0)
|
||||
factory_bot (~> 5.2.0)
|
||||
railties (>= 4.2.0)
|
||||
faker (2.11.0)
|
||||
factory_bot (6.1.0)
|
||||
activesupport (>= 5.0.0)
|
||||
factory_bot_rails (6.1.0)
|
||||
factory_bot (~> 6.1.0)
|
||||
railties (>= 5.0.0)
|
||||
faker (2.16.0)
|
||||
i18n (>= 1.6, < 2)
|
||||
faraday (1.0.1)
|
||||
faraday (1.3.0)
|
||||
faraday-net_http (~> 1.0)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
ffi (1.12.2)
|
||||
ruby2_keywords
|
||||
faraday-net_http (1.0.1)
|
||||
ffi (1.14.2)
|
||||
font-awesome-sass (5.9.0)
|
||||
sassc (>= 1.11)
|
||||
globalid (0.4.2)
|
||||
activesupport (>= 4.2.0)
|
||||
google-api-client (0.42.1)
|
||||
google-apis-core (0.2.1)
|
||||
addressable (~> 2.5, >= 2.5.1)
|
||||
googleauth (~> 0.9)
|
||||
googleauth (~> 0.14)
|
||||
httpclient (>= 2.8.1, < 3.0)
|
||||
mini_mime (~> 1.0)
|
||||
representable (~> 3.0)
|
||||
retriable (>= 2.0, < 4.0)
|
||||
signet (~> 0.12)
|
||||
rexml
|
||||
signet (~> 0.14)
|
||||
webrick
|
||||
google-apis-iamcredentials_v1 (0.1.0)
|
||||
google-apis-core (~> 0.1)
|
||||
google-apis-storage_v1 (0.2.0)
|
||||
google-apis-core (~> 0.1)
|
||||
google-cloud-core (1.5.0)
|
||||
google-cloud-env (~> 1.0)
|
||||
google-cloud-errors (~> 1.0)
|
||||
google-cloud-env (1.3.3)
|
||||
google-cloud-env (1.4.0)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
google-cloud-errors (1.0.1)
|
||||
google-cloud-storage (1.26.2)
|
||||
google-cloud-storage (1.30.0)
|
||||
addressable (~> 2.5)
|
||||
digest-crc (~> 0.4)
|
||||
google-api-client (~> 0.33)
|
||||
google-apis-iamcredentials_v1 (~> 0.1)
|
||||
google-apis-storage_v1 (~> 0.1)
|
||||
google-cloud-core (~> 1.2)
|
||||
googleauth (~> 0.9)
|
||||
mini_mime (~> 1.0)
|
||||
googleauth (0.13.0)
|
||||
googleauth (0.15.1)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
jwt (>= 1.4, < 3.0)
|
||||
memoist (~> 0.16)
|
||||
|
@ -181,10 +184,10 @@ GEM
|
|||
hiredis (0.6.3)
|
||||
http_accept_language (2.1.1)
|
||||
httpclient (2.8.3)
|
||||
i18n (1.8.5)
|
||||
i18n (1.8.9)
|
||||
concurrent-ruby (~> 1.0)
|
||||
i18n-language-mapping (0.1.2)
|
||||
jbuilder (2.10.0)
|
||||
jbuilder (2.11.2)
|
||||
activesupport (>= 5.0.0)
|
||||
jmespath (1.4.0)
|
||||
jquery-rails (4.4.0)
|
||||
|
@ -193,22 +196,22 @@ GEM
|
|||
thor (>= 0.14, < 2.0)
|
||||
jquery-ui-rails (6.0.1)
|
||||
railties (>= 3.2.16)
|
||||
json (2.3.0)
|
||||
json (2.5.1)
|
||||
json-jwt (1.13.0)
|
||||
activesupport (>= 4.2)
|
||||
aes_key_wrap
|
||||
bindata
|
||||
jwt (2.2.1)
|
||||
listen (3.0.8)
|
||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||
rb-inotify (~> 0.9, >= 0.9.7)
|
||||
jwt (2.2.2)
|
||||
listen (3.4.1)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
local_time (2.1.0)
|
||||
lograge (0.11.2)
|
||||
actionpack (>= 4)
|
||||
activesupport (>= 4)
|
||||
railties (>= 4)
|
||||
request_store (~> 1.0)
|
||||
loofah (2.7.0)
|
||||
loofah (2.9.0)
|
||||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.5.9)
|
||||
mail (2.7.1)
|
||||
|
@ -220,17 +223,17 @@ GEM
|
|||
mimemagic (0.3.5)
|
||||
mini_mime (1.0.2)
|
||||
mini_portile2 (2.5.0)
|
||||
minitest (5.14.2)
|
||||
msgpack (1.3.3)
|
||||
multi_json (1.14.1)
|
||||
minitest (5.14.4)
|
||||
msgpack (1.4.2)
|
||||
multi_json (1.15.0)
|
||||
multi_xml (0.6.0)
|
||||
multipart-post (2.1.1)
|
||||
net-ldap (0.16.2)
|
||||
nio4r (2.5.4)
|
||||
net-ldap (0.17.0)
|
||||
nio4r (2.5.5)
|
||||
nokogiri (1.11.1)
|
||||
mini_portile2 (~> 2.5.0)
|
||||
racc (~> 1.4)
|
||||
oauth (0.5.4)
|
||||
oauth (0.5.5)
|
||||
oauth2 (1.4.4)
|
||||
faraday (>= 0.8, < 2.0)
|
||||
jwt (>= 1.0, < 3.0)
|
||||
|
@ -250,9 +253,9 @@ GEM
|
|||
jwt (>= 2.0)
|
||||
omniauth (>= 1.1.1)
|
||||
omniauth-oauth2 (>= 1.5)
|
||||
omniauth-oauth (1.1.0)
|
||||
omniauth-oauth (1.2.0)
|
||||
oauth
|
||||
omniauth (~> 1.0)
|
||||
omniauth (>= 1.0, < 3)
|
||||
omniauth-oauth2 (1.5.0)
|
||||
oauth2 (~> 1.1)
|
||||
omniauth (~> 1.2)
|
||||
|
@ -273,17 +276,17 @@ GEM
|
|||
validate_email
|
||||
validate_url
|
||||
webfinger (>= 1.0.1)
|
||||
os (1.1.0)
|
||||
pagy (3.8.1)
|
||||
parallel (1.19.1)
|
||||
parser (2.7.1.3)
|
||||
ast (~> 2.4.0)
|
||||
os (1.1.1)
|
||||
pagy (3.11.0)
|
||||
parallel (1.20.1)
|
||||
parser (3.0.0.0)
|
||||
ast (~> 2.4.1)
|
||||
pg (0.21.0)
|
||||
pluck_to_hash (1.0.2)
|
||||
activerecord (>= 4.0.2)
|
||||
activesupport (>= 4.0.2)
|
||||
popper_js (1.16.0)
|
||||
public_suffix (4.0.5)
|
||||
public_suffix (4.0.6)
|
||||
puma (3.12.6)
|
||||
racc (1.5.2)
|
||||
rack (2.2.3)
|
||||
|
@ -295,44 +298,45 @@ GEM
|
|||
rack (>= 2.1.0)
|
||||
rack-test (1.1.0)
|
||||
rack (>= 1.0, < 3)
|
||||
rails (5.2.4.4)
|
||||
actioncable (= 5.2.4.4)
|
||||
actionmailer (= 5.2.4.4)
|
||||
actionpack (= 5.2.4.4)
|
||||
actionview (= 5.2.4.4)
|
||||
activejob (= 5.2.4.4)
|
||||
activemodel (= 5.2.4.4)
|
||||
activerecord (= 5.2.4.4)
|
||||
activestorage (= 5.2.4.4)
|
||||
activesupport (= 5.2.4.4)
|
||||
rails (5.2.4.5)
|
||||
actioncable (= 5.2.4.5)
|
||||
actionmailer (= 5.2.4.5)
|
||||
actionpack (= 5.2.4.5)
|
||||
actionview (= 5.2.4.5)
|
||||
activejob (= 5.2.4.5)
|
||||
activemodel (= 5.2.4.5)
|
||||
activerecord (= 5.2.4.5)
|
||||
activestorage (= 5.2.4.5)
|
||||
activesupport (= 5.2.4.5)
|
||||
bundler (>= 1.3.0)
|
||||
railties (= 5.2.4.4)
|
||||
railties (= 5.2.4.5)
|
||||
sprockets-rails (>= 2.0.0)
|
||||
rails-controller-testing (1.0.4)
|
||||
actionpack (>= 5.0.1.x)
|
||||
actionview (>= 5.0.1.x)
|
||||
activesupport (>= 5.0.1.x)
|
||||
rails-controller-testing (1.0.5)
|
||||
actionpack (>= 5.0.1.rc1)
|
||||
actionview (>= 5.0.1.rc1)
|
||||
activesupport (>= 5.0.1.rc1)
|
||||
rails-dom-testing (2.0.3)
|
||||
activesupport (>= 4.2.0)
|
||||
nokogiri (>= 1.6)
|
||||
rails-html-sanitizer (1.3.0)
|
||||
loofah (~> 2.3)
|
||||
railties (5.2.4.4)
|
||||
actionpack (= 5.2.4.4)
|
||||
activesupport (= 5.2.4.4)
|
||||
railties (5.2.4.5)
|
||||
actionpack (= 5.2.4.5)
|
||||
activesupport (= 5.2.4.5)
|
||||
method_source
|
||||
rake (>= 0.8.7)
|
||||
thor (>= 0.19.0, < 2.0)
|
||||
rainbow (3.0.0)
|
||||
rake (13.0.1)
|
||||
rake (13.0.3)
|
||||
random_password (0.1.1)
|
||||
rb-fsevent (0.10.4)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
recaptcha (5.5.0)
|
||||
recaptcha (5.7.0)
|
||||
json
|
||||
redcarpet (3.5.1)
|
||||
redis (4.1.4)
|
||||
redis (4.2.5)
|
||||
regexp_parser (2.1.1)
|
||||
remote_syslog_logger (1.0.4)
|
||||
syslog_protocol
|
||||
representable (3.0.4)
|
||||
|
@ -343,9 +347,9 @@ GEM
|
|||
rack (>= 1.4)
|
||||
retriable (3.1.2)
|
||||
rexml (3.2.4)
|
||||
rspec-core (3.9.2)
|
||||
rspec-core (3.9.3)
|
||||
rspec-support (~> 3.9.3)
|
||||
rspec-expectations (3.9.2)
|
||||
rspec-expectations (3.9.4)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.9.0)
|
||||
rspec-mocks (3.9.1)
|
||||
|
@ -359,21 +363,22 @@ GEM
|
|||
rspec-expectations (~> 3.9.0)
|
||||
rspec-mocks (~> 3.9.0)
|
||||
rspec-support (~> 3.9.0)
|
||||
rspec-support (3.9.3)
|
||||
rubocop (0.84.0)
|
||||
rspec-support (3.9.4)
|
||||
rubocop (1.10.0)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 2.7.0.1)
|
||||
parser (>= 3.0.0.0)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 1.8, < 3.0)
|
||||
rexml
|
||||
rubocop-ast (>= 0.0.3)
|
||||
rubocop-ast (>= 1.2.0, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 1.4.0, < 2.0)
|
||||
rubocop-ast (0.0.3)
|
||||
parser (>= 2.7.0.1)
|
||||
ruby-progressbar (1.10.1)
|
||||
unicode-display_width (>= 1.4.0, < 3.0)
|
||||
rubocop-ast (1.4.1)
|
||||
parser (>= 2.7.1.5)
|
||||
ruby-progressbar (1.11.0)
|
||||
ruby2_keywords (0.0.4)
|
||||
rubyzip (2.3.0)
|
||||
safe_yaml (1.0.5)
|
||||
sassc (2.3.0)
|
||||
sassc (2.4.0)
|
||||
ffi (~> 1.9)
|
||||
sassc-rails (2.1.2)
|
||||
railties (>= 4.0.0)
|
||||
|
@ -381,10 +386,10 @@ GEM
|
|||
sprockets (> 3.0)
|
||||
sprockets-rails
|
||||
tilt
|
||||
sequel (5.32.0)
|
||||
sequel (5.41.0)
|
||||
shoulda-matchers (3.1.3)
|
||||
activesupport (>= 4.0.0)
|
||||
signet (0.14.0)
|
||||
signet (0.14.1)
|
||||
addressable (~> 2.3)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
jwt (>= 1.5, < 3.0)
|
||||
|
@ -394,7 +399,7 @@ GEM
|
|||
json (>= 1.8, < 3)
|
||||
simplecov-html (~> 0.10.0)
|
||||
simplecov-html (0.10.2)
|
||||
spring (2.1.0)
|
||||
spring (2.1.1)
|
||||
spring-watcher-listen (2.0.1)
|
||||
listen (>= 2.7, < 4.0)
|
||||
spring (>= 1.2, < 3.0)
|
||||
|
@ -414,22 +419,22 @@ GEM
|
|||
syslog_protocol (0.9.2)
|
||||
term-ansicolor (1.7.1)
|
||||
tins (~> 1.0)
|
||||
thor (1.0.1)
|
||||
thor (1.1.0)
|
||||
thread_safe (0.3.6)
|
||||
tilt (2.0.10)
|
||||
tins (1.25.0)
|
||||
tins (1.28.0)
|
||||
sync
|
||||
turbolinks (5.2.1)
|
||||
turbolinks-source (~> 5.2)
|
||||
turbolinks-source (5.2.0)
|
||||
tzinfo (1.2.7)
|
||||
tzinfo (1.2.9)
|
||||
thread_safe (~> 0.1)
|
||||
tzinfo-data (1.2020.1)
|
||||
tzinfo-data (1.2021.1)
|
||||
tzinfo (>= 1.0.0)
|
||||
uber (0.1.0)
|
||||
uglifier (4.2.0)
|
||||
execjs (>= 0.3.0, < 3)
|
||||
unicode-display_width (1.7.0)
|
||||
unicode-display_width (2.0.0)
|
||||
validate_email (0.1.6)
|
||||
activemodel (>= 3.0)
|
||||
mail (>= 2.2.5)
|
||||
|
@ -444,74 +449,74 @@ GEM
|
|||
webfinger (1.1.0)
|
||||
activesupport
|
||||
httpclient (>= 2.4)
|
||||
webmock (3.8.3)
|
||||
webmock (3.11.2)
|
||||
addressable (>= 2.3.6)
|
||||
crack (>= 0.3.2)
|
||||
hashdiff (>= 0.4.0, < 2.0.0)
|
||||
webrick (1.7.0)
|
||||
websocket-driver (0.7.3)
|
||||
websocket-extensions (>= 0.1.0)
|
||||
websocket-extensions (0.1.5)
|
||||
xml-simple (1.1.5)
|
||||
xml-simple (1.1.8)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
action-cable-testing
|
||||
aws-sdk-s3 (~> 1.75)
|
||||
action-cable-testing (~> 0.6)
|
||||
aws-sdk-s3 (~> 1.88.1)
|
||||
bcrypt (~> 3.1.7)
|
||||
bigbluebutton-api-ruby!
|
||||
bn-ldap-authentication (~> 0.1.4)
|
||||
bootsnap (>= 1.1.0)
|
||||
bootsnap (~> 1.7.2)
|
||||
bootstrap (~> 4.3.1)
|
||||
byebug
|
||||
cancancan (~> 2.0)
|
||||
coffee-rails (~> 4.2)
|
||||
coveralls
|
||||
dotenv-rails
|
||||
factory_bot_rails
|
||||
faker
|
||||
byebug (~> 11.1)
|
||||
cancancan (~> 2.3.0)
|
||||
coveralls (~> 0.8.23)
|
||||
dotenv-rails (~> 2.7)
|
||||
factory_bot_rails (~> 6.1)
|
||||
faker (~> 2.16)
|
||||
font-awesome-sass (~> 5.9.0)
|
||||
google-cloud-storage (~> 1.26)
|
||||
hiredis
|
||||
http_accept_language
|
||||
google-cloud-storage (~> 1.30.0)
|
||||
hiredis (~> 0.6.3)
|
||||
http_accept_language (~> 2.1.1)
|
||||
i18n-language-mapping (~> 0.1.1)
|
||||
jbuilder (~> 2.5)
|
||||
jquery-rails (~> 4.4)
|
||||
jquery-ui-rails
|
||||
listen (~> 3.0.5)
|
||||
jbuilder (~> 2.11.2)
|
||||
jquery-rails (~> 4.4.0)
|
||||
jquery-ui-rails (~> 6.0.1)
|
||||
listen (~> 3.0)
|
||||
local_time (~> 2.1.0)
|
||||
lograge
|
||||
net-ldap
|
||||
omniauth
|
||||
lograge (~> 0.11.2)
|
||||
net-ldap (~> 0.17.0)
|
||||
omniauth (~> 1.9.1)
|
||||
omniauth-bn-launcher (~> 0.1.3)
|
||||
omniauth-bn-office365 (~> 0.1.1)
|
||||
omniauth-google-oauth2
|
||||
omniauth-twitter
|
||||
omniauth_openid_connect
|
||||
pagy
|
||||
omniauth-google-oauth2 (~> 0.7.0)
|
||||
omniauth-twitter (~> 1.4.0)
|
||||
omniauth_openid_connect (~> 0.3.5)
|
||||
pagy (~> 3.11.0)
|
||||
pg (~> 0.18)
|
||||
pluck_to_hash (~> 1.0.2)
|
||||
puma (~> 3.12)
|
||||
puma (~> 3.12.6)
|
||||
rails (~> 5.2.4.4)
|
||||
rails-controller-testing
|
||||
random_password
|
||||
recaptcha
|
||||
redcarpet
|
||||
redis
|
||||
remote_syslog_logger
|
||||
rails-controller-testing (~> 1.0)
|
||||
random_password (~> 0.1.1)
|
||||
recaptcha (~> 5.7.0)
|
||||
redcarpet (~> 3.5.1)
|
||||
redis (~> 4.2.5)
|
||||
remote_syslog_logger (~> 1.0.4)
|
||||
rspec-rails (~> 3.7)
|
||||
rubocop
|
||||
sassc-rails
|
||||
sequel
|
||||
rubocop (~> 1.10.0)
|
||||
sassc-rails (~> 2.1.2)
|
||||
sequel (~> 5.41.0)
|
||||
shoulda-matchers (~> 3.1)
|
||||
spring
|
||||
spring-watcher-listen (~> 2.0.0)
|
||||
sprockets (< 4.0.0)
|
||||
spring (~> 2.1)
|
||||
spring-watcher-listen (~> 2.0)
|
||||
sprockets (~> 3.7.2)
|
||||
sqlite3 (~> 1.3.6)
|
||||
tabler-rubygem!
|
||||
turbolinks (~> 5)
|
||||
tzinfo-data
|
||||
uglifier (>= 1.3.0)
|
||||
web-console (>= 3.3.0)
|
||||
webmock
|
||||
turbolinks (~> 5.2.1)
|
||||
tzinfo-data (~> 1.2021.1)
|
||||
uglifier (~> 4.2.0)
|
||||
web-console (~> 3.7)
|
||||
webmock (~> 3.11)
|
||||
|
|
|
@ -41,7 +41,7 @@ class AccountActivationsController < ApplicationController
|
|||
flash: { success: I18n.t("registration.approval.signup") } if @user.has_role?(:pending)
|
||||
|
||||
# Redirect user to sign in path with success flash
|
||||
redirect_to signin_path, flash: { success: I18n.t("verify.activated") + " " + I18n.t("verify.signin") }
|
||||
redirect_to signin_path, flash: { success: "#{I18n.t('verify.activated')} #{I18n.t('verify.signin')}" }
|
||||
else
|
||||
redirect_to root_path, flash: { alert: I18n.t("verify.invalid") }
|
||||
end
|
||||
|
|
|
@ -228,7 +228,7 @@ class AdminsController < ApplicationController
|
|||
flash_message = I18n.t("administrator.flash.settings")
|
||||
|
||||
if params[:value] == "Default Recording Visibility"
|
||||
flash_message += ". " + I18n.t("administrator.site_settings.recording_visibility.warning")
|
||||
flash_message += ". #{I18n.t('administrator.site_settings.recording_visibility.warning')}"
|
||||
end
|
||||
|
||||
redirect_to admin_site_settings_path(tab: tab), flash: { success: flash_message }
|
||||
|
|
|
@ -29,13 +29,11 @@ class ApplicationController < ActionController::Base
|
|||
def current_user
|
||||
@current_user ||= User.includes(:role, :main_room).find_by(id: session[:user_id])
|
||||
|
||||
if Rails.configuration.loadbalanced_configuration
|
||||
if @current_user && !@current_user.has_role?(:super_admin) &&
|
||||
@current_user.provider != @user_domain
|
||||
if Rails.configuration.loadbalanced_configuration && (@current_user && !@current_user.has_role?(:super_admin) &&
|
||||
@current_user.provider != @user_domain)
|
||||
@current_user = nil
|
||||
session.clear
|
||||
end
|
||||
end
|
||||
|
||||
@current_user
|
||||
end
|
||||
|
@ -86,8 +84,8 @@ class ApplicationController < ActionController::Base
|
|||
end
|
||||
|
||||
maintenance_string = @settings.get_value("Maintenance Banner").presence || Rails.configuration.maintenance_window
|
||||
if maintenance_string.present?
|
||||
flash.now[:maintenance] = maintenance_string unless cookies[:maintenance_window] == maintenance_string
|
||||
if maintenance_string.present? && cookies[:maintenance_window] != maintenance_string
|
||||
flash.now[:maintenance] = maintenance_string
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -268,17 +266,18 @@ class ApplicationController < ActionController::Base
|
|||
rescue => e
|
||||
logger.error "Error in retrieve provider info: #{e}"
|
||||
@hide_signin = true
|
||||
if e.message.eql? "No user with that id exists"
|
||||
case e.message
|
||||
when "No user with that id exists"
|
||||
set_default_settings
|
||||
|
||||
render "errors/greenlight_error", locals: { message: I18n.t("errors.not_found.user_not_found.message"),
|
||||
help: I18n.t("errors.not_found.user_not_found.help") }
|
||||
elsif e.message.eql? "Provider not included."
|
||||
when "Provider not included."
|
||||
set_default_settings
|
||||
|
||||
render "errors/greenlight_error", locals: { message: I18n.t("errors.not_found.user_missing.message"),
|
||||
help: I18n.t("errors.not_found.user_missing.help") }
|
||||
elsif e.message.eql? "That user has no configured provider."
|
||||
when "That user has no configured provider."
|
||||
if Setting.exists?(provider: @user_domain)
|
||||
# Keep the branding
|
||||
@settings = Setting.find_by(provider: @user_domain)
|
||||
|
|
|
@ -113,7 +113,7 @@ module Authenticator
|
|||
old_user.rooms.each do |room|
|
||||
room.owner = user
|
||||
|
||||
room.name = "Old " + room.name if room.id == old_user.main_room.id
|
||||
room.name = "Old #{room.name}" if room.id == old_user.main_room.id
|
||||
|
||||
room.save!
|
||||
end
|
||||
|
|
|
@ -123,9 +123,10 @@ module Rolify
|
|||
:can_manage_rooms_recordings, :can_appear_in_share_list, :colour)
|
||||
|
||||
permission_params.transform_values! do |v|
|
||||
if v == "0"
|
||||
case v
|
||||
when "0"
|
||||
"false"
|
||||
elsif v == "1"
|
||||
when "1"
|
||||
"true"
|
||||
else
|
||||
v
|
||||
|
|
|
@ -47,9 +47,7 @@ class HealthCheckController < ApplicationController
|
|||
end
|
||||
|
||||
def database_check
|
||||
if defined?(ActiveRecord)
|
||||
raise "Database not responding" unless ActiveRecord::Migrator.current_version
|
||||
end
|
||||
raise "Database not responding" if defined?(ActiveRecord) && !ActiveRecord::Migrator.current_version
|
||||
raise "Pending migrations" unless ActiveRecord::Migration.check_pending!.nil?
|
||||
end
|
||||
|
||||
|
@ -61,9 +59,7 @@ class HealthCheckController < ApplicationController
|
|||
settings = ActionMailer::Base.smtp_settings
|
||||
|
||||
smtp = Net::SMTP.new(settings[:address], settings[:port])
|
||||
if settings[:enable_starttls_auto] == "true"
|
||||
smtp.enable_starttls_auto if smtp.respond_to?(:enable_starttls_auto)
|
||||
end
|
||||
smtp.enable_starttls_auto if settings[:enable_starttls_auto] == ("true") && smtp.respond_to?(:enable_starttls_auto)
|
||||
|
||||
if settings[:authentication].present? && settings[:authentication] != "none"
|
||||
smtp.start(settings[:domain]) do |s|
|
||||
|
|
|
@ -332,11 +332,11 @@ class RoomsController < ApplicationController
|
|||
|
||||
def create_room_settings_string(options)
|
||||
room_settings = {
|
||||
"muteOnStart": options[:mute_on_join] == "1",
|
||||
"requireModeratorApproval": options[:require_moderator_approval] == "1",
|
||||
"anyoneCanStart": options[:anyone_can_start] == "1",
|
||||
"joinModerator": options[:all_join_moderator] == "1",
|
||||
"recording": options[:recording] == "1",
|
||||
muteOnStart: options[:mute_on_join] == "1",
|
||||
requireModeratorApproval: options[:require_moderator_approval] == "1",
|
||||
anyoneCanStart: options[:anyone_can_start] == "1",
|
||||
joinModerator: options[:all_join_moderator] == "1",
|
||||
recording: options[:recording] == "1",
|
||||
}
|
||||
|
||||
room_settings.to_json
|
||||
|
|
|
@ -125,13 +125,14 @@ class SessionsController < ApplicationController
|
|||
def ldap
|
||||
ldap_config = {}
|
||||
ldap_config[:host] = ENV['LDAP_SERVER']
|
||||
ldap_config[:port] = ENV['LDAP_PORT'].to_i != 0 ? ENV['LDAP_PORT'].to_i : 389
|
||||
ldap_config[:port] = ENV['LDAP_PORT'].to_i.zero? ? 389 : ENV['LDAP_PORT'].to_i
|
||||
ldap_config[:bind_dn] = ENV['LDAP_BIND_DN']
|
||||
ldap_config[:password] = ENV['LDAP_PASSWORD']
|
||||
ldap_config[:auth_method] = ENV['LDAP_AUTH']
|
||||
ldap_config[:encryption] = if ENV['LDAP_METHOD'] == 'ssl'
|
||||
ldap_config[:encryption] = case ENV['LDAP_METHOD']
|
||||
when 'ssl'
|
||||
'simple_tls'
|
||||
elsif ENV['LDAP_METHOD'] == 'tls'
|
||||
when 'tls'
|
||||
'start_tls'
|
||||
end
|
||||
ldap_config[:base] = ENV['LDAP_BASE']
|
||||
|
|
|
@ -75,13 +75,14 @@ module ApplicationHelper
|
|||
end
|
||||
|
||||
def translated_role_name(role)
|
||||
if role.name == "denied"
|
||||
case role.name
|
||||
when "denied"
|
||||
I18n.t("roles.banned")
|
||||
elsif role.name == "pending"
|
||||
when "pending"
|
||||
I18n.t("roles.pending")
|
||||
elsif role.name == "admin"
|
||||
when "admin"
|
||||
I18n.t("roles.admin")
|
||||
elsif role.name == "user"
|
||||
when "user"
|
||||
I18n.t("roles.user")
|
||||
else
|
||||
role.name
|
||||
|
|
|
@ -44,7 +44,7 @@ module UsersHelper
|
|||
# Returns language selection options for user edit
|
||||
def language_options
|
||||
locales = I18n.available_locales
|
||||
language_opts = [['<<<< ' + t("language_default") + ' >>>>', "default"]]
|
||||
language_opts = [["<<<< #{t('language_default')} >>>>", "default"]]
|
||||
locales.each do |locale|
|
||||
language_mapping = I18n::Language::Mapping.language_mapping_list[locale.to_s.gsub("_", "-")]
|
||||
language_opts.push([language_mapping["nativeName"], locale.to_s])
|
||||
|
|
|
@ -43,7 +43,7 @@ class UserMailer < ApplicationMailer
|
|||
def user_promoted(user, role, url, settings)
|
||||
@settings = settings
|
||||
@url = url
|
||||
@admin_url = url + "admins"
|
||||
@admin_url = "#{url}admins"
|
||||
@image = logo_image
|
||||
@color = user_color
|
||||
@role = translated_role_name(role)
|
||||
|
|
|
@ -41,7 +41,7 @@ class User < ApplicationRecord
|
|||
validate :check_if_email_can_be_blank
|
||||
validates :email, length: { maximum: 256 }, allow_blank: true,
|
||||
uniqueness: { case_sensitive: false, scope: :provider },
|
||||
format: { with: /\A[\w+\-\'.]+@[a-z\d\-.]+\.[a-z]+\z/i }
|
||||
format: { with: /\A[\w+\-'.]+@[a-z\d\-.]+\.[a-z]+\z/i }
|
||||
|
||||
validates :password, length: { minimum: 6 }, confirmation: true, if: :greenlight_account?, on: :create
|
||||
|
||||
|
|
|
@ -149,9 +149,10 @@ module Greenlight
|
|||
config.primary_color_darken_default = "#316cbe"
|
||||
|
||||
# Default registration method if the user does not specify one
|
||||
config.registration_method_default = if ENV["DEFAULT_REGISTRATION"] == "invite"
|
||||
config.registration_method_default = case ENV["DEFAULT_REGISTRATION"]
|
||||
when "invite"
|
||||
config.registration_methods[:invite]
|
||||
elsif ENV["DEFAULT_REGISTRATION"] == "approval"
|
||||
when "approval"
|
||||
config.registration_methods[:approval]
|
||||
else
|
||||
config.registration_methods[:open]
|
||||
|
|
|
@ -148,7 +148,7 @@ Rails.application.configure do
|
|||
config.log_tags = [:request_id]
|
||||
|
||||
if ENV["RAILS_LOG_TO_STDOUT"] == "true"
|
||||
logger = ActiveSupport::Logger.new(STDOUT)
|
||||
logger = ActiveSupport::Logger.new($stdout)
|
||||
logger.formatter = config.log_formatter
|
||||
config.logger = ActiveSupport::TaggedLogging.new(logger)
|
||||
elsif ENV["RAILS_LOG_REMOTE_NAME"] && ENV["RAILS_LOG_REMOTE_PORT"]
|
||||
|
|
|
@ -6,16 +6,16 @@
|
|||
# the maximum value specified for Puma. Default is set to 5 threads for minimum
|
||||
# and maximum; this matches the default thread size of Active Record.
|
||||
#
|
||||
threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
|
||||
threads_count = ENV.fetch("RAILS_MAX_THREADS", 5)
|
||||
threads threads_count, threads_count
|
||||
|
||||
# Specifies the `port` that Puma will listen on to receive requests; default is 3000.
|
||||
#
|
||||
port ENV.fetch("PORT") { 80 }
|
||||
port ENV.fetch("PORT", 80)
|
||||
|
||||
# Specifies the `environment` that Puma will run in.
|
||||
#
|
||||
environment ENV.fetch("RAILS_ENV") { "development" }
|
||||
environment ENV.fetch("RAILS_ENV", "development")
|
||||
|
||||
# Specifies the number of `workers` to boot in clustered mode.
|
||||
# Workers are forked webserver processes. If using threads and workers together
|
||||
|
@ -23,7 +23,7 @@ environment ENV.fetch("RAILS_ENV") { "development" }
|
|||
# Workers do not work on JRuby or Windows (both of which do not support
|
||||
# processes).
|
||||
#
|
||||
workers ENV.fetch("WEB_CONCURRENCY") { 1 }
|
||||
workers ENV.fetch("WEB_CONCURRENCY", 1)
|
||||
|
||||
# Use the `preload_app!` method when specifying a `workers` number.
|
||||
# This directive tells Puma to first boot the application and load code
|
||||
|
|
|
@ -12,15 +12,16 @@ class AddCustomRoles < ActiveRecord::Migration[5.2]
|
|||
|
||||
# Determine what ids corresponded to what roles in the old table
|
||||
old_roles.each do |role|
|
||||
if role["name"] == "super_admin"
|
||||
case role["name"]
|
||||
when "super_admin"
|
||||
super_admin_id = role["id"]
|
||||
elsif role["name"] == "user"
|
||||
when "user"
|
||||
user_id = role["id"]
|
||||
elsif role["name"] == "admin"
|
||||
when "admin"
|
||||
admin_id = role["id"]
|
||||
elsif role["name"] == "denied"
|
||||
when "denied"
|
||||
denied_id = role["id"]
|
||||
elsif role["name"] == "pending"
|
||||
when "pending"
|
||||
pending_id = role["id"]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -33,7 +33,7 @@ module BbbApi
|
|||
|
||||
# Build the URI.
|
||||
uri = encode_bbb_url(
|
||||
Rails.configuration.loadbalancer_endpoint + api + '/',
|
||||
"#{Rails.configuration.loadbalancer_endpoint}#{api}/",
|
||||
Rails.configuration.loadbalancer_secret,
|
||||
{ name: provider },
|
||||
route
|
||||
|
|
|
@ -20,11 +20,11 @@ module OmniauthOptions
|
|||
module_function
|
||||
|
||||
def omniauth_options(env)
|
||||
if env['omniauth.strategy'].options[:name] == "bn_launcher"
|
||||
case env['omniauth.strategy'].options[:name]
|
||||
when "bn_launcher"
|
||||
protocol = Rails.env.production? ? "https" : env["rack.url_scheme"]
|
||||
|
||||
customer_redirect_url = protocol + "://" + env["SERVER_NAME"] + ":" +
|
||||
env["SERVER_PORT"]
|
||||
customer_redirect_url = "#{protocol}://#{env['SERVER_NAME']}:#{env['SERVER_PORT']}"
|
||||
user_domain = parse_user_domain(env["SERVER_NAME"])
|
||||
env['omniauth.strategy'].options[:customer] = user_domain
|
||||
env['omniauth.strategy'].options[:customer_redirect_url] = customer_redirect_url
|
||||
|
@ -33,11 +33,11 @@ module OmniauthOptions
|
|||
# This is only used in the old launcher and should eventually be removed
|
||||
env['omniauth.strategy'].options[:checksum] = generate_checksum(user_domain, customer_redirect_url,
|
||||
Rails.configuration.launcher_secret)
|
||||
elsif env['omniauth.strategy'].options[:name] == "google"
|
||||
when "google"
|
||||
set_hd(env, ENV['GOOGLE_OAUTH2_HD'])
|
||||
elsif env['omniauth.strategy'].options[:name] == "office365"
|
||||
when "office365"
|
||||
set_hd(env, ENV['OFFICE365_HD'])
|
||||
elsif env['omniauth.strategy'].options[:name] == "openid_connect"
|
||||
when "openid_connect"
|
||||
set_hd(env, ENV['OPENID_CONNECT_HD'])
|
||||
end
|
||||
end
|
||||
|
|
|
@ -20,7 +20,7 @@ namespace :office365 do
|
|||
old_user.save!
|
||||
else
|
||||
old_main_room = old_user.main_room
|
||||
old_main_room.name = "Old " + old_main_room.name
|
||||
old_main_room.name = "Old #{old_main_room.name}"
|
||||
old_main_room.save!
|
||||
|
||||
new_user.rooms << old_user.rooms
|
||||
|
|
|
@ -39,7 +39,7 @@ namespace :room do
|
|||
next if room.uid.split("-").length > 3
|
||||
|
||||
begin
|
||||
new_uid = room.uid + "-" + SecureRandom.alphanumeric(3).downcase
|
||||
new_uid = "#{room.uid}-#{SecureRandom.alphanumeric(3).downcase}"
|
||||
puts "Updating #{room.uid} to #{new_uid}"
|
||||
room.update_attributes(uid: new_uid)
|
||||
rescue => e
|
||||
|
|
|
@ -35,7 +35,10 @@ namespace :user do
|
|||
u[:email].prepend "superadmin-" if args[:role] == "super_admin"
|
||||
|
||||
# Create account if it doesn't exist
|
||||
if !User.exists?(email: u[:email], provider: u[:provider])
|
||||
if User.exists?(email: u[:email], provider: u[:provider])
|
||||
puts "Account with that email already exists"
|
||||
puts "Email: #{u[:email]}"
|
||||
else
|
||||
user = User.create(name: u[:name], email: u[:email], password: u[:password],
|
||||
provider: u[:provider], email_verified: true, accepted_terms: true)
|
||||
|
||||
|
@ -52,9 +55,6 @@ namespace :user do
|
|||
puts "Password: #{u[:password]}"
|
||||
puts "Role: #{u[:role]}"
|
||||
puts "PLEASE CHANGE YOUR PASSWORD IMMEDIATELY" if u[:password] == Rails.configuration.admin_password_default
|
||||
else
|
||||
puts "Account with that email already exists"
|
||||
puts "Email: #{u[:email]}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -182,8 +182,8 @@ describe RoomsController, type: :controller do
|
|||
@request.session[:user_id] = @owner.id
|
||||
name = Faker::Games::Pokemon.name
|
||||
|
||||
room_params = { name: name, "mute_on_join": "1",
|
||||
"require_moderator_approval": "1", "anyone_can_start": "1", "all_join_moderator": "1" }
|
||||
room_params = { name: name, mute_on_join: "1",
|
||||
require_moderator_approval: "1", anyone_can_start: "1", all_join_moderator: "1" }
|
||||
json_room_settings = "{\"muteOnStart\":true,\"requireModeratorApproval\":true," \
|
||||
"\"anyoneCanStart\":true,\"joinModerator\":true,\"recording\":false}"
|
||||
|
||||
|
@ -199,8 +199,8 @@ describe RoomsController, type: :controller do
|
|||
it "should respond with JSON object of the room_settings" do
|
||||
@request.session[:user_id] = @owner.id
|
||||
|
||||
@owner.main_room.update_attribute(:room_settings, { "muteOnStart": true, "requireModeratorApproval": true,
|
||||
"anyoneCanStart": true, "joinModerator": true }.to_json)
|
||||
@owner.main_room.update_attribute(:room_settings, { muteOnStart: true, requireModeratorApproval: true,
|
||||
anyoneCanStart: true, joinModerator: true }.to_json)
|
||||
|
||||
json_room_settings = { "anyoneCanStart" => true,
|
||||
"joinModerator" => true,
|
||||
|
@ -224,7 +224,7 @@ describe RoomsController, type: :controller do
|
|||
it "should redirect back to main room with error if it fails" do
|
||||
@request.session[:user_id] = @owner.id
|
||||
|
||||
room_params = { name: "", "mute_on_join": "1" }
|
||||
room_params = { name: "", mute_on_join: "1" }
|
||||
|
||||
post :create, params: { room: room_params }
|
||||
|
||||
|
@ -237,7 +237,7 @@ describe RoomsController, type: :controller do
|
|||
|
||||
@request.session[:user_id] = @owner.id
|
||||
|
||||
room_params = { name: Faker::Games::Pokemon.name, "mute_on_join": "1" }
|
||||
room_params = { name: Faker::Games::Pokemon.name, mute_on_join: "1" }
|
||||
|
||||
post :create, params: { room: room_params }
|
||||
|
||||
|
@ -583,7 +583,7 @@ describe RoomsController, type: :controller do
|
|||
@request.session[:user_id] = @user.id
|
||||
name = Faker::Name.first_name
|
||||
|
||||
room_params = { room_uid: @secondary_room.uid, room: { "name": name } }
|
||||
room_params = { room_uid: @secondary_room.uid, room: { name: name } }
|
||||
|
||||
expect { post :update_settings, params: room_params }.to change { @secondary_room.reload.name }
|
||||
.from(@secondary_room.name).to(name)
|
||||
|
@ -593,7 +593,7 @@ describe RoomsController, type: :controller do
|
|||
it "properly updates room settings through the room settings modal and redirects to current page" do
|
||||
@request.session[:user_id] = @user.id
|
||||
|
||||
room_params = { "mute_on_join": "1", "name": @secondary_room.name, "recording": "1" }
|
||||
room_params = { mute_on_join: "1", name: @secondary_room.name, recording: "1" }
|
||||
formatted_room_params = "{\"muteOnStart\":true,\"requireModeratorApproval\":false," \
|
||||
"\"anyoneCanStart\":false,\"joinModerator\":false,\"recording\":true}" # JSON string format
|
||||
|
||||
|
@ -616,7 +616,7 @@ describe RoomsController, type: :controller do
|
|||
@admin.set_role :admin
|
||||
@request.session[:user_id] = @admin.id
|
||||
|
||||
room_params = { "mute_on_join": "1", "name": @secondary_room.name }
|
||||
room_params = { mute_on_join: "1", name: @secondary_room.name }
|
||||
formatted_room_params = "{\"muteOnStart\":true,\"requireModeratorApproval\":false," \
|
||||
"\"anyoneCanStart\":false,\"joinModerator\":false,\"recording\":false}" # JSON string format
|
||||
|
||||
|
@ -632,7 +632,7 @@ describe RoomsController, type: :controller do
|
|||
@admin.set_role :admin
|
||||
@request.session[:user_id] = @admin.id
|
||||
|
||||
room_params = { "mute_on_join": "1", "name": @secondary_room.name }
|
||||
room_params = { mute_on_join: "1", name: @secondary_room.name }
|
||||
|
||||
expect { post :update_settings, params: { room_uid: @secondary_room.uid, room: room_params } }
|
||||
.not_to change { @secondary_room.reload.room_settings }
|
||||
|
|
|
@ -416,7 +416,7 @@ describe UsersController, type: :controller do
|
|||
tmp_role1.update_permission("send_promoted_email", "true")
|
||||
|
||||
params = random_valid_user_params
|
||||
params = params.merge!(user_uid: user, user: { role_id: tmp_role1.id.to_s })
|
||||
params.merge!(user_uid: user, user: { role_id: tmp_role1.id.to_s })
|
||||
|
||||
expect { post :update, params: params }.to change { ActionMailer::Base.deliveries.count }.by(1)
|
||||
|
||||
|
@ -440,7 +440,7 @@ describe UsersController, type: :controller do
|
|||
@request.session[:user_id] = admin.id
|
||||
|
||||
params = random_valid_user_params
|
||||
params = params.merge!(user_uid: user, user: { role_id: new_role.id.to_s })
|
||||
params.merge!(user_uid: user, user: { role_id: new_role.id.to_s })
|
||||
|
||||
expect(user.role.name).to eq("test1")
|
||||
expect(user.main_room).to be_nil
|
||||
|
@ -503,7 +503,7 @@ describe UsersController, type: :controller do
|
|||
user: {
|
||||
password: "incorrect_password",
|
||||
new_password: @password,
|
||||
password_confirmation: @password + "_random_string",
|
||||
password_confirmation: "#{@password}_random_string",
|
||||
}
|
||||
}
|
||||
post :update_password, params: params.merge!(user_uid: @user)
|
||||
|
|
|
@ -54,27 +54,27 @@ RSpec.configure do |config|
|
|||
.with(
|
||||
headers:
|
||||
{
|
||||
'Accept': '*/*',
|
||||
Accept: '*/*',
|
||||
'Accept-Encoding': 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
|
||||
'User-Agent': 'Ruby',
|
||||
}
|
||||
)
|
||||
.to_return(status: 200, body: "", headers: {})
|
||||
stub_request(:any, /#{ENV['LOADBALANCER_ENDPOINT'] + 'api'}/)
|
||||
stub_request(:any, /#{"#{ENV['LOADBALANCER_ENDPOINT']}api"}/)
|
||||
.with(
|
||||
headers:
|
||||
{
|
||||
'Accept': '*/*',
|
||||
Accept: '*/*',
|
||||
'Accept-Encoding': 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
|
||||
'User-Agent': 'Ruby',
|
||||
}
|
||||
)
|
||||
.to_return(status: 200, body: "", headers: {}) if ENV['LOADBALANCER_ENDPOINT']
|
||||
stub_request(:any, /#{ENV['LOADBALANCER_ENDPOINT'] + 'api\/getUser'}/)
|
||||
stub_request(:any, /#{"#{ENV['LOADBALANCER_ENDPOINT']}api\\/getUser"}/)
|
||||
.with(
|
||||
headers:
|
||||
{
|
||||
'Accept': '*/*',
|
||||
Accept: '*/*',
|
||||
'Accept-Encoding': 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
|
||||
'User-Agent': 'Ruby',
|
||||
}
|
||||
|
@ -90,11 +90,11 @@ RSpec.configure do |config|
|
|||
<secret>secret</secret>
|
||||
</user>
|
||||
</response>", headers: {}) if ENV['LOADBALANCER_ENDPOINT']
|
||||
stub_request(:any, /#{ENV['LOADBALANCER_ENDPOINT'] + 'api2\/getUserGreenlightCredentials'}/)
|
||||
stub_request(:any, /#{"#{ENV['LOADBALANCER_ENDPOINT']}api2\\/getUserGreenlightCredentials"}/)
|
||||
.with(
|
||||
headers:
|
||||
{
|
||||
'Accept': '*/*',
|
||||
Accept: '*/*',
|
||||
'Accept-Encoding': 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
|
||||
'User-Agent': 'Ruby',
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
class UserMailerPreview < ActionMailer::Preview
|
||||
def initialize(_params)
|
||||
super
|
||||
@logo = "https://raw.githubusercontent.com/bigbluebutton/greenlight/master/app/assets/images/logo_with_text.png"
|
||||
@color = "#467fcf"
|
||||
end
|
||||
|
@ -11,7 +12,7 @@ class UserMailerPreview < ActionMailer::Preview
|
|||
def password_reset
|
||||
user = User.first
|
||||
user.reset_token = User.new_token
|
||||
url = "http://example.com" + "/password_resets/" + user.reset_token + "/edit?email=" + user.email
|
||||
url = "http://example.com/password_resets/#{user.reset_token}/edit?email=#{user.email}"
|
||||
UserMailer.password_reset(user, url, @logo, @color)
|
||||
end
|
||||
|
||||
|
@ -19,7 +20,7 @@ class UserMailerPreview < ActionMailer::Preview
|
|||
# http://localhost:3000/rails/mailers/user_mailer/verify_email
|
||||
def verify_email
|
||||
user = User.first
|
||||
url = "http://example.com" + "/u/verify/confirm/" + user.uid
|
||||
url = "http://example.com/u/verify/confirm/#{user.uid}"
|
||||
UserMailer.verify_email(user, url, @logo, @color)
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue