Skip to content

Commit 60f21ac

Browse files
committed
Move credentials to settings.yml
1 parent 9a9f4f2 commit 60f21ac

File tree

8 files changed

+36
-16
lines changed

8 files changed

+36
-16
lines changed

app/models/user.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class User < ApplicationRecord
3838
# Include default devise modules. Others available are:
3939
# :confirmable, :lockable, :timeoutable and :omniauthable
4040
devise :database_authenticatable, :registerable, :rememberable, :trackable, :validatable
41-
devise :recoverable if Rails.application.credentials.mail_settings
41+
devise :recoverable if Rails.configuration.x.settings.dig(:mail_settings) || Rails.application.credentials.mail_settings
4242

4343
mount_uploader :avatar, AvatarUploader
4444
validates :avatar,

config/application.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@ class Application < Rails::Application
1212
config.load_defaults 7.0
1313
config.time_zone = "Taipei"
1414
config.site_name = "TIOJ INFOR Online Judge"
15-
config.x.settings = config_for(:settings)
15+
begin
16+
config.x.settings = config_for(:settings)
17+
rescue RuntimeError
18+
config.x.settings = {}
19+
end
1620
ActsAsTaggableOn.strict_case_match = true
1721

1822
# Settings in config/environments/* take precedence over those specified here.

config/environments/development.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@
4141

4242
config.action_mailer.perform_caching = false
4343

44-
if Rails.application.credentials.mail_settings
45-
config.action_mailer.default_url_options = Rails.application.credentials.mail_settings.url_options
44+
if Rails.configuration.x.settings.dig(:mail_settings) || Rails.application.credentials.mail_settings
45+
config.action_mailer.default_url_options = Rails.configuration.x.settings.dig(:mail_settings, :url_options) || Rails.application.credentials.mail_settings.url_options
4646
config.action_mailer.delivery_method = :smtp
47-
config.action_mailer.smtp_settings = Rails.application.credentials.mail_settings.smtp_settings
47+
config.action_mailer.smtp_settings = Rails.configuration.x.settings.dig(:mail_settings, :smtp_settings) || Rails.application.credentials.mail_settings.smtp_settings
4848
end
4949

5050
# Print deprecation notices to the Rails logger.

config/environments/production.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,10 @@
7474

7575
config.action_mailer.perform_caching = false
7676

77-
if Rails.application.credentials.mail_settings
78-
config.action_mailer.default_url_options = Rails.application.credentials.mail_settings.url_options
77+
if Rails.configuration.x.settings.dig(:mail_settings) || Rails.application.credentials.mail_settings
78+
config.action_mailer.default_url_options = Rails.configuration.x.settings.dig(:mail_settings, :url_options) || Rails.application.credentials.mail_settings.url_options
7979
config.action_mailer.delivery_method = :smtp
80-
config.action_mailer.smtp_settings = Rails.application.credentials.mail_settings.smtp_settings
80+
config.action_mailer.smtp_settings = Rails.configuration.x.settings.dig(:mail_settings, :smtp_settings) || Rails.application.credentials.mail_settings.smtp_settings
8181
end
8282

8383
# Ignore bad email addresses and do not raise email delivery errors.

config/environments/test.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@
3838

3939
config.action_mailer.perform_caching = false
4040

41-
if Rails.application.credentials.mail_settings
42-
config.action_mailer.default_url_options = Rails.application.credentials.mail_settings.url_options
41+
if Rails.configuration.x.settings.dig(:mail_settings) || Rails.application.credentials.mail_settings
42+
config.action_mailer.default_url_options = Rails.configuration.x.settings.dig(:mail_settings, :url_options) || Rails.application.credentials.mail_settings.url_options
4343
config.action_mailer.delivery_method = :smtp
44-
config.action_mailer.smtp_settings = Rails.application.credentials.mail_settings.smtp_settings
44+
config.action_mailer.smtp_settings = Rails.configuration.x.settings.dig(:mail_settings, :smtp_settings) || Rails.application.credentials.mail_settings.smtp_settings
4545
end
4646

4747
# Tell Action Mailer not to deliver emails to the real world.

config/initializers/devise.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
# Configure the e-mail address which will be shown in Devise::Mailer,
1111
# note that it will be overwritten if you use your own mailer class
1212
# with default "from" parameter.
13-
config.mailer_sender = Rails.application.credentials.mail_settings&.sender || ""
13+
config.mailer_sender = Rails.configuration.x.settings.dig(:mail_settings, :sender) || Rails.application.credentials.mail_settings&.sender || ""
1414

1515
# Configure the class responsible to send e-mails.
1616
# config.mailer = 'Devise::Mailer'

config/initializers/sentry.rb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1-
if Rails.application.credentials.sentry_dsn
1+
Rails.logger.fatal Rails.configuration.x.settings
2+
if Rails.configuration.x.settings.dig(:sentry_dsn) || Rails.application.credentials.sentry_dsn
23
Sentry.init do |config|
3-
config.dsn = Rails.application.credentials.sentry_dsn
4+
config.dsn = Rails.configuration.x.settings.dig(:sentry_dsn) || Rails.application.credentials.sentry_dsn
45
config.breadcrumbs_logger = [:active_support_logger, :http_logger]
56
config.traces_sampler = lambda do |sampling_context|
67
unless sampling_context[:parent_sampled].nil?
78
next sampling_context[:parent_sampled]
89
end
10+
sample_rate = Rails.configuration.x.settings.dig(:sentry_sample_rate)
911
if sampling_context[:transaction_context][:op] == 'rails.action_cable'
10-
Rails.configuration.x.settings.sentry_sample_rate[:cable]
12+
sample_rate&.dig(:cable) == nil ? 0.02 : sample_rate[:cable]
1113
else
12-
Rails.configuration.x.settings.sentry_sample_rate[:normal]
14+
sample_rate&.dig(:normal) == nil ? 0.02 : sample_rate[:normal]
1315
end
1416
end
1517
end

config/settings.yml.example

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
11
shared:
2+
# Password recovery settings
3+
mail_settings:
4+
smtp_settings: # SMTP server settings; it will be passed to config.action_mailer.smtp_settings
5+
address: smtp.example.com
6+
port: 587
7+
user_name: [email protected]
8+
password: some_password
9+
enable_starttls_auto: true
10+
url_options:
11+
host: https://tioj.example.com # the URL of the website, used to generate the link in the email
12+
sender: tioj.example.com # email sender
13+
14+
# Sentry settings
15+
sentry_dsn: https://[email protected]/xxxx # copy from your sentry project
216
sentry_sample_rate:
317
normal: 0.002
418
cable: 0.001

0 commit comments

Comments
 (0)