From 359b23b5832c9c5cab16a6d7c399d760bedba827 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 12 Jun 2024 13:36:09 -0400 Subject: [PATCH] Move storage enabled config to `config_for` yml --- config/application.rb | 2 ++ config/initializers/1_hosts.rb | 4 ++-- config/initializers/paperclip.rb | 6 +++--- config/storage.yml | 4 ++++ spec/lib/content_security_policy_spec.rb | 5 ++++- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/config/application.rb b/config/application.rb index 65407da05c..80ff125f24 100644 --- a/config/application.rb +++ b/config/application.rb @@ -111,6 +111,8 @@ module Mastodon end end + config.x.storage = config_for(:storage) + config.to_prepare do Doorkeeper::AuthorizationsController.layout 'modal' Doorkeeper::AuthorizedApplicationsController.layout 'admin' diff --git a/config/initializers/1_hosts.rb b/config/initializers/1_hosts.rb index 5c59e28bd1..95ed98e7c4 100644 --- a/config/initializers/1_hosts.rb +++ b/config/initializers/1_hosts.rb @@ -12,8 +12,8 @@ Rails.application.configure do config.x.local_domain = host config.x.web_domain = web_host config.x.use_https = https - config.x.use_s3 = ENV['S3_ENABLED'] == 'true' - config.x.use_swift = ENV['SWIFT_ENABLED'] == 'true' + config.x.use_s3 = Rails.configuration.x.storage.s3_enabled + config.x.use_swift = Rails.configuration.x.storage.swift_enabled config.x.alternate_domains = alternate_domains diff --git a/config/initializers/paperclip.rb b/config/initializers/paperclip.rb index 070d250bf3..20520b4eda 100644 --- a/config/initializers/paperclip.rb +++ b/config/initializers/paperclip.rb @@ -35,7 +35,7 @@ Paperclip::Attachment.default_options.merge!( storage: :fog ) -if ENV['S3_ENABLED'] == 'true' +if Rails.configuration.x.storage.s3_enabled require 'aws-sdk-s3' s3_region = ENV.fetch('S3_REGION') { 'us-east-1' } @@ -115,7 +115,7 @@ if ENV['S3_ENABLED'] == 'true' end Paperclip::Storage::S3.prepend(Paperclip::Storage::S3Extensions) -elsif ENV['SWIFT_ENABLED'] == 'true' +elsif Rails.configuration.x.storage.swift_enabled require 'fog/openstack' Paperclip::Attachment.default_options.merge!( @@ -139,7 +139,7 @@ elsif ENV['SWIFT_ENABLED'] == 'true' fog_host: ENV['SWIFT_OBJECT_URL'], fog_public: true ) -elsif ENV['AZURE_ENABLED'] == 'true' +elsif Rails.configuration.x.storage.azure_enabled require 'paperclip-azure' Paperclip::Attachment.default_options.merge!( diff --git a/config/storage.yml b/config/storage.yml index e69de29bb2..cdaaf3407f 100644 --- a/config/storage.yml +++ b/config/storage.yml @@ -0,0 +1,4 @@ +shared: + azure_enabled: <%= ENV.fetch('AZURE_ENABLED', 'false') %> + s3_enabled: <%= ENV.fetch('S3_ENABLED', 'false') %> + swift_enabled: <%= ENV.fetch('SWIFT_ENABLED', 'false') %> diff --git a/spec/lib/content_security_policy_spec.rb b/spec/lib/content_security_policy_spec.rb index 27a3e80257..02d3ac4011 100644 --- a/spec/lib/content_security_policy_spec.rb +++ b/spec/lib/content_security_policy_spec.rb @@ -116,8 +116,11 @@ describe ContentSecurityPolicy do context 'when s3_enabled is configured' do around do |example| - ClimateControl.modify S3_ENABLED: 'true', S3_HOSTNAME: 'asset-host.s3.example' do + ClimateControl.modify S3_HOSTNAME: 'asset-host.s3.example' do + original = Rails.configuration.x.storage.s3_enabled + Rails.configuration.x.storage.s3_enabled = true example.run + Rails.configuration.x.storage.s3_enabled = original end end