diff --git a/app/controllers/conference_registrations_controller.rb b/app/controllers/conference_registrations_controller.rb index a16659a2..6bf79202 100644 --- a/app/controllers/conference_registrations_controller.rb +++ b/app/controllers/conference_registrations_controller.rb @@ -13,7 +13,7 @@ class ConferenceRegistrationsController < ApplicationController redirect_to edit_conference_conference_registrations_path(@conference.short_title) return # ichain does not allow us to create users during registration - elsif CONFIG['authentication']['ichain']['enabled'] && !current_user + elsif (ENV['OSEM_ICHAIN_ENABLED'] == 'true') && !current_user redirect_to root_path, alert: 'You need to sign in or sign up before continuing.' return end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index a2bec3a7..e04b902d 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -274,8 +274,10 @@ module ApplicationHelper unless Rails.application.secrets.send(provider_key).blank? || Rails.application.secrets.send(provider_secret).blank? providers << provider end + providers << provider if !ENV["OSEM_#{provider.upcase}_KEY"].blank? && !ENV["OSEM_#{provider.upcase}_SECRET"].blank? end - return providers + + return providers.uniq end # Receives a hash, generated from User model, function get_roles @@ -294,7 +296,7 @@ module ApplicationHelper end def sign_in_path - if CONFIG['authentication']['ichain']['enabled'] + if ENV['OSEM_ICHAIN_ENABLED'] == 'true' new_user_ichain_session_path else new_user_session_path @@ -302,7 +304,7 @@ module ApplicationHelper end def sign_up_path - if CONFIG['authentication']['ichain']['enabled'] + if ENV['OSEM_ICHAIN_ENABLED'] == 'true' new_user_ichain_registration_path else new_user_registration_path diff --git a/app/models/ability.rb b/app/models/ability.rb index e3d34ec8..3570c90b 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -45,7 +45,7 @@ class Ability # can view Commercials of confirmed Events can :show, Commercial, commercialable_type: 'Event', commercialable_id: Event.where(state: 'confirmed').pluck(:id) can [:show, :create], User - unless CONFIG['authentication']['ichain']['enabled'] + unless ENV['OSEM_ICHAIN_ENABLED'] == 'true' can :show, Registration do |registration| registration.new_record? end diff --git a/app/models/email_settings.rb b/app/models/email_settings.rb index 7390ba93..af4579b2 100644 --- a/app/models/email_settings.rb +++ b/app/models/email_settings.rb @@ -9,12 +9,12 @@ class EmailSettings < ActiveRecord::Base 'conference_start_date' => conference.start_date, 'conference_end_date' => conference.end_date, 'registrationlink' => Rails.application.routes.url_helpers.conference_conference_registrations_url( - conference.short_title, host: CONFIG['url_for_emails']), + conference.short_title, host: (ENV['OSEM_HOSTNAME'] || 'localhost:3000')), 'conference_splash_link' => Rails.application.routes.url_helpers.conference_url( - conference.short_title, host: CONFIG['url_for_emails']), + conference.short_title, host: (ENV['OSEM_HOSTNAME'] || 'localhost:3000')), 'schedule_link' => Rails.application.routes.url_helpers.schedule_conference_url( - conference.short_title, host: CONFIG['url_for_emails']) + conference.short_title, host: (ENV['OSEM_HOSTNAME'] || 'localhost:3000')) } if conference.program.cfp @@ -41,7 +41,7 @@ class EmailSettings < ActiveRecord::Base if event h['eventtitle'] = event.title h['proposalslink'] = Rails.application.routes.url_helpers.conference_program_proposal_index_url( - conference.short_title, host: CONFIG['url_for_emails']) + conference.short_title, host: (ENV['OSEM_HOSTNAME'] || 'localhost:3000')) end h end diff --git a/app/models/user.rb b/app/models/user.rb index 3586834e..d3c847a2 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -19,7 +19,7 @@ class User < ActiveRecord::Base # :lockable, :timeoutable and :omniauthable devise_modules = [] - if CONFIG['authentication']['ichain']['enabled'] + if ENV['OSEM_ICHAIN_ENABLED'] == 'true' devise_modules += [ :ichain_authenticatable, :ichain_registerable, :omniauthable, omniauth_providers: [] ] else devise_modules += [:database_authenticatable, :registerable, diff --git a/app/views/conference_registrations/_form.html.haml b/app/views/conference_registrations/_form.html.haml index 53ad4a29..33cfb755 100644 --- a/app/views/conference_registrations/_form.html.haml +++ b/app/views/conference_registrations/_form.html.haml @@ -11,7 +11,7 @@ %legend %span =link_to('#signup', role: 'tab', "aria-controls" => "home", "data-toggle" => "tab") do - = CONFIG['name'] + = ENV['OSEM_NAME'] || 'OSEM' Account %span.pull-right#account-already =link_to('#signin', role: 'tab', "aria-controls" => "home", "data-toggle" => "tab") do diff --git a/app/views/devise/shared/_sign_in_form_embedded.html.haml b/app/views/devise/shared/_sign_in_form_embedded.html.haml index 43704315..e08ece92 100644 --- a/app/views/devise/shared/_sign_in_form_embedded.html.haml +++ b/app/views/devise/shared/_sign_in_form_embedded.html.haml @@ -1,4 +1,4 @@ -- if !CONFIG['authentication']['ichain']['enabled'] +- if ENV['OSEM_ICHAIN_ENABLED'] == 'true' = form_tag(new_user_session_path, class: 'form-horizontal') do %legend %span diff --git a/app/views/layouts/_navigation.html.haml b/app/views/layouts/_navigation.html.haml index e94a0c92..5b76ac0e 100644 --- a/app/views/layouts/_navigation.html.haml +++ b/app/views/layouts/_navigation.html.haml @@ -7,7 +7,7 @@ %span.icon-bar %span.icon-bar %span.icon-bar - = link_to CONFIG['name'], root_path, class: 'navbar-brand', title: 'Open Source Event Manager' + = link_to (ENV['OSEM_NAME'] || 'OSEM'), root_path, class: 'navbar-brand', title: 'Open Source Event Manager' .collapse.navbar-collapse - if content_for :splash_nav %ul.nav.navbar-nav#splash-nav @@ -43,7 +43,7 @@ %li= link_to 'See all Comments', admin_comments_path(anchor: 'all_comments') - else %ul.nav.navbar-nav.navbar-right - - if CONFIG['authentication']['ichain']['enabled'] + - if ENV['OSEM_ICHAIN_ENABLED'] == 'true' %li{:class=> "#{active_nav_li(new_ichain_registration_path('user'))}"} = link_to(new_ichain_registration_path('user')) do %span.fa.fa-heart @@ -59,7 +59,7 @@ Sign In %span.caret .dropdown-menu{:style => "padding: 17px; min-width: 225px;"} - - if CONFIG['authentication']['ichain']['enabled'] + - if ENV['OSEM_ICHAIN_ENABLED'] == 'true' = form_tag User.ichain_login_url do = text_field_tag 'username', nil, id: 'user_ichain_email_dd', placeholder: 'Username' = password_field_tag 'password', nil, id: 'user_ichain_password_dd', placeholder: 'Password' diff --git a/app/views/layouts/_user_menu.html.haml b/app/views/layouts/_user_menu.html.haml index 24808027..26f02b5a 100644 --- a/app/views/layouts/_user_menu.html.haml +++ b/app/views/layouts/_user_menu.html.haml @@ -1,4 +1,4 @@ -- unless CONFIG['authentication']['ichain']['enabled'] +- unless ENV['OSEM_ICHAIN_ENABLED'] == 'true' %li = link_to(edit_user_registration_path) do %span.fa.fa-wrench @@ -13,7 +13,7 @@ %span.fa.fa-comment My Submissions %li - - if CONFIG['authentication']['ichain']['enabled'] + - if ENV['OSEM_ICHAIN_ENABLED'] == 'true' = link_to(destroy_user_ichain_session_path, :method=>'delete') do %span.fa.fa-minus Sign out diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 8220dab3..893198fa 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -2,7 +2,7 @@ %head %meta{:charset => "utf-8"} %meta{:name => "viewport", :content => "width=device-width, initial-scale=1, maximum-scale=1"} - %title= content_for?(:title) ? yield(:title) : CONFIG['name'] + %title= content_for?(:title) ? yield(:title) : (ENV['OSEM_NAME'] || 'OSEM') %meta{:content => "", :name => "description"} %meta{:content => "", :name => "author"} = stylesheet_link_tag "application", :media => "all" @@ -11,7 +11,7 @@ = csrf_meta_tags :javascript window.liveSettings = { - api_key: "#{CONFIG['transifex_live_api_key']}", + api_key: "#{ENV['OSEM_TRANSIFEX_APIKEY']}", picker: "bottom-right", detectlang: true, autocollect: true diff --git a/app/views/layouts/schedule.html.haml b/app/views/layouts/schedule.html.haml index f1f726ed..d5dfaf8c 100644 --- a/app/views/layouts/schedule.html.haml +++ b/app/views/layouts/schedule.html.haml @@ -3,7 +3,7 @@ %head %meta{:charset => "utf-8"} %meta{:name => "viewport", :content => "width=device-width, initial-scale=1, maximum-scale=1"} - %title= content_for?(:title) ? yield(:title) : CONFIG['name'] + %title= content_for?(:title) ? yield(:title) : (ENV['OSEM_NAME'] || 'OSEM') %meta{:content => "", :name => "description"} %meta{:content => "", :name => "author"} = stylesheet_link_tag "/stylesheets/schedule/jquery-ui-1.9.2.custom.min" @@ -17,4 +17,4 @@ = yield(:head) %body .content - = yield \ No newline at end of file + = yield diff --git a/app/views/proposal/new.html.haml b/app/views/proposal/new.html.haml index 37e89b94..37e415f7 100644 --- a/app/views/proposal/new.html.haml +++ b/app/views/proposal/new.html.haml @@ -12,7 +12,7 @@ %legend %span =link_to('#signup', role: 'tab', 'aria-controls' => 'home', 'data-toggle' => 'tab') do - = CONFIG['name'] + = ENV['OSEM_NAME'] || 'OSEM' Account %span.pull-right#account-already =link_to('#signin', role: 'tab', 'aria-controls' => 'home', 'data-toggle' => 'tab') do diff --git a/config/environments/development.rb b/config/environments/development.rb index 14a74d8a..61d9fd57 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -35,7 +35,10 @@ Osem::Application.configure do config.eager_load = false # Set the detault url for action mailer - config.action_mailer.default_url_options = { host: CONFIG['url_for_emails'] } + config.action_mailer.default_url_options = { host: (ENV['OSEM_HOSTNAME'] || 'localhost:3000') } + + # Set the secret key base if it's not set via other means + config.secret_key_base ||= 'f4be765bc98e516de82ac01daa8f8aa11c5ca13cb6c911887851ac89457b6c0b056b2361a21b5c08926c9386e0f91eef84fc0b103d522bf00bc0c78ea8ce7c58' # Use omniauth mock credentials OmniAuth.config.test_mode = true diff --git a/config/environments/production.rb b/config/environments/production.rb index 530b821b..bc267278 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -67,7 +67,7 @@ Osem::Application.configure do config.active_support.deprecation = :notify # Set the detault url for action mailer - config.action_mailer.default_url_options = { host: CONFIG['url_for_emails'] } + config.action_mailer.default_url_options = { host: (ENV['OSEM_HOSTNAME'] || 'localhost:3000') } # Set the smtp configuration of your service provider # For further details of each configuration checkout: http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration @@ -78,4 +78,7 @@ Osem::Application.configure do password: CONFIG['MAIL_PASSWORD'], authentication: CONFIG['MAIL_AUTHENTICATION'] } + + # Set the secret_key_base from the env, if not set by any other means + config.secret_key_base ||= ENV["SECRET_KEY_BASE"] end diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 3312206f..1de0259a 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -2,24 +2,21 @@ # Many of these configuration options can be set straight in your model. Devise.setup do |config| - # ==> Secret key, generate one with `rake secret` - config.secret_key = Rails.application.secrets.devise_secret_key - # ==> openIDs configuration # Define the available openID providers that can be used to log in # Pass each provider to User model in :omniauth_providers (for open_id providers use their name) config.omniauth :open_id, name: 'suse', identifier: 'http://www.opensuse.org/openid/user' - config.omniauth :google_oauth2, Rails.application.secrets.google_key, Rails.application.secrets.google_secret, + config.omniauth :google_oauth2, (ENV['OSEM_GOOGLE_KEY'] || Rails.application.secrets.google_key), (ENV['OSEM_GOOGLE_SECRET'] || Rails.application.secrets.google_secret), name: 'google', scope: 'email' - config.omniauth :facebook, Rails.application.secrets.facebook_key, Rails.application.secrets.facebook_secret - config.omniauth :github, Rails.application.secrets.github_key, Rails.application.secrets.github_secret + config.omniauth :facebook, (ENV['OSEM_FACEBOOK_KEY'] || Rails.application.secrets.facebook_key), (ENV['OSEM_FACEBOOK_SECRET'] || Rails.application.secrets.facebook_secret) + config.omniauth :github, (ENV['OSEM_GITHUB_KEY'] || Rails.application.secrets.github_key), (ENV['OSEM_GITHUB_SECRET'] || Rails.application.secrets.github_secret) # ==> Mailer Configuration # Configure the e-mail address which will be shown in Devise::Mailer, # note that it will be overwritten if you use your own mailer class with default "from" parameter. - config.mailer_sender = CONFIG['sender_for_emails'] + config.mailer_sender = ENV['OSEM_EMAIL_ADDRESS'] || 'no-reply@localhost' # Configure the class responsible to send e-mails. # config.mailer = "Devise::Mailer" diff --git a/config/initializers/hoptoad.rb b/config/initializers/hoptoad.rb index 813dc3b0..992a53e7 100644 --- a/config/initializers/hoptoad.rb +++ b/config/initializers/hoptoad.rb @@ -1,7 +1,7 @@ HoptoadNotifier.configure do |config| # Change this to some sensible data for your errbit instance - config.api_key = Rails.application.secrets.errbit_key || '' - config.host = Rails.application.secrets.errbit_host || '' + config.api_key = ENV['OSEM_ERRBIT_APIKEY'] || Rails.application.secrets.errbit_key || '' + config.host = ENV['OSEM_ERRBIT_HOST'] if config.api_key.blank? || config.host.blank? config.development_environments = 'production development test' else diff --git a/config/routes.rb b/config/routes.rb index 5c0b3858..5882a854 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,6 +1,6 @@ Osem::Application.routes.draw do - if CONFIG['authentication']['ichain']['enabled'] + if ENV['OSEM_ICHAIN_ENABLED'] == 'true' devise_for :users, controllers: { registrations: :registrations } else devise_for :users,