mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-27 09:36:19 -05:00
Rename SiteSetting#use_https
to force_https
.
This commit is contained in:
parent
83b08b87d5
commit
20359788dc
16 changed files with 75 additions and 18 deletions
|
@ -120,7 +120,7 @@ class UserAvatarsController < ApplicationController
|
||||||
def proxy_avatar(url)
|
def proxy_avatar(url)
|
||||||
|
|
||||||
if url[0..1] == "//"
|
if url[0..1] == "//"
|
||||||
url = (SiteSetting.use_https ? "https:" : "http:") + url
|
url = (SiteSetting.force_https ? "https:" : "http:") + url
|
||||||
end
|
end
|
||||||
|
|
||||||
sha = Digest::SHA1.hexdigest(url)
|
sha = Digest::SHA1.hexdigest(url)
|
||||||
|
|
|
@ -18,7 +18,7 @@ class About
|
||||||
end
|
end
|
||||||
|
|
||||||
def https
|
def https
|
||||||
SiteSetting.use_https
|
SiteSetting.force_https
|
||||||
end
|
end
|
||||||
|
|
||||||
def title
|
def title
|
||||||
|
|
|
@ -23,6 +23,7 @@ class SiteSetting < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
load_settings(File.join(Rails.root, 'config', 'site_settings.yml'))
|
load_settings(File.join(Rails.root, 'config', 'site_settings.yml'))
|
||||||
|
setup_deprecated_methods
|
||||||
|
|
||||||
unless Rails.env.test? && ENV['LOAD_PLUGINS'] != "1"
|
unless Rails.env.test? && ENV['LOAD_PLUGINS'] != "1"
|
||||||
Dir[File.join(Rails.root, "plugins", "*", "config", "settings.yml")].each do |file|
|
Dir[File.join(Rails.root, "plugins", "*", "config", "settings.yml")].each do |file|
|
||||||
|
@ -85,7 +86,7 @@ class SiteSetting < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.scheme
|
def self.scheme
|
||||||
use_https? ? "https" : "http"
|
force_https? ? "https" : "http"
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.default_categories_selected
|
def self.default_categories_selected
|
||||||
|
@ -108,7 +109,6 @@ class SiteSetting < ActiveRecord::Base
|
||||||
def self.email_polling_enabled?
|
def self.email_polling_enabled?
|
||||||
SiteSetting.manual_polling_enabled? || SiteSetting.pop3_polling_enabled?
|
SiteSetting.manual_polling_enabled? || SiteSetting.pop3_polling_enabled?
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# == Schema Information
|
# == Schema Information
|
||||||
|
|
|
@ -6,7 +6,7 @@ class Discourse::ForceHttpsMiddleware
|
||||||
end
|
end
|
||||||
|
|
||||||
def call(env)
|
def call(env)
|
||||||
env['rack.url_scheme'] = 'https' if SiteSetting.use_https
|
env['rack.url_scheme'] = 'https' if SiteSetting.force_https
|
||||||
@app.call(env)
|
@app.call(env)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -765,7 +765,7 @@ de:
|
||||||
notification_email: "Die E-Mail-Adresse die als \"From:\" Absender aller wichtiger System-E-Mails benutzt wird. Die benutzte Domain sollte über korrekte SPF, DKIM und PTR Einträge verfügen, damit E-Mails sicher zugestellt werden können."
|
notification_email: "Die E-Mail-Adresse die als \"From:\" Absender aller wichtiger System-E-Mails benutzt wird. Die benutzte Domain sollte über korrekte SPF, DKIM und PTR Einträge verfügen, damit E-Mails sicher zugestellt werden können."
|
||||||
email_custom_headers: "Eine durch senkrechte Striche getrennte Liste von eigenen E-Mail Headerzeilen"
|
email_custom_headers: "Eine durch senkrechte Striche getrennte Liste von eigenen E-Mail Headerzeilen"
|
||||||
email_subject: "Format der Betreffzeile in Standard-E-Mails. Siehe https://meta.discourse.org/t/customize-subject-format-for-standard-emails/20801"
|
email_subject: "Format der Betreffzeile in Standard-E-Mails. Siehe https://meta.discourse.org/t/customize-subject-format-for-standard-emails/20801"
|
||||||
use_https: "Erzwinge HTTPS für deine Seite. ACHTUNG: aktiviere dies nicht, bevor HTTPS nicht vollständig eingerichtet ist und auf jeden Fall überall funktioniert! Hast du alle CDN-Netzwerke, alle Logins über Soziale Netzwerke, alle externe Logos / Abhängigkeiten geprüft, um sicherzustellen, dass sie auch alle HTTPS-kompatibel sind?"
|
force_https: "Erzwinge HTTPS für deine Seite. ACHTUNG: aktiviere dies nicht, bevor HTTPS nicht vollständig eingerichtet ist und auf jeden Fall überall funktioniert! Hast du alle CDN-Netzwerke, alle Logins über Soziale Netzwerke, alle externe Logos / Abhängigkeiten geprüft, um sicherzustellen, dass sie auch alle HTTPS-kompatibel sind?"
|
||||||
summary_score_threshold: "Mindestpunktzahl, die ein Beitrag benötigt, um in der \"Thema zusammenfassen\"-Ansicht zu erscheinen."
|
summary_score_threshold: "Mindestpunktzahl, die ein Beitrag benötigt, um in der \"Thema zusammenfassen\"-Ansicht zu erscheinen."
|
||||||
summary_posts_required: "Mindestanzahl an Beiträgen in einem Thema, bevor die \"Thema zusammenfassen\"-Funktion aktiviert wird."
|
summary_posts_required: "Mindestanzahl an Beiträgen in einem Thema, bevor die \"Thema zusammenfassen\"-Funktion aktiviert wird."
|
||||||
summary_likes_required: "Mindestanzahl an \"Gefällt mir\" Wertungen in einem Thema, bevor die \"Thema zusammenfassen\" Funktion aktiviert wird."
|
summary_likes_required: "Mindestanzahl an \"Gefällt mir\" Wertungen in einem Thema, bevor die \"Thema zusammenfassen\" Funktion aktiviert wird."
|
||||||
|
|
|
@ -865,7 +865,7 @@ en:
|
||||||
notification_email: "The from: email address used when sending all essential system emails. The domain specified here must have SPF, DKIM and reverse PTR records set correctly for email to arrive."
|
notification_email: "The from: email address used when sending all essential system emails. The domain specified here must have SPF, DKIM and reverse PTR records set correctly for email to arrive."
|
||||||
email_custom_headers: "A pipe-delimited list of custom email headers"
|
email_custom_headers: "A pipe-delimited list of custom email headers"
|
||||||
email_subject: "Customizable subject format for standard emails. See https://meta.discourse.org/t/customize-subject-format-for-standard-emails/20801"
|
email_subject: "Customizable subject format for standard emails. See https://meta.discourse.org/t/customize-subject-format-for-standard-emails/20801"
|
||||||
use_https: "Force your site to use HTTPS only. WARNING: do NOT enable this until you verify HTTPS is fully set up and working absolutely everywhere! Did you check your CDN, all social logins, and any external logos / dependencies to make sure they are all HTTPS compatible, too?"
|
force_https: "Force your site to use HTTPS only. WARNING: do NOT enable this until you verify HTTPS is fully set up and working absolutely everywhere! Did you check your CDN, all social logins, and any external logos / dependencies to make sure they are all HTTPS compatible, too?"
|
||||||
summary_score_threshold: "The minimum score required for a post to be included in 'Summarize This Topic'"
|
summary_score_threshold: "The minimum score required for a post to be included in 'Summarize This Topic'"
|
||||||
summary_posts_required: "Minimum posts in a topic before 'Summarize This Topic' is enabled"
|
summary_posts_required: "Minimum posts in a topic before 'Summarize This Topic' is enabled"
|
||||||
summary_likes_required: "Minimum likes in a topic before 'Summarize This Topic' is enabled"
|
summary_likes_required: "Minimum likes in a topic before 'Summarize This Topic' is enabled"
|
||||||
|
|
|
@ -776,7 +776,7 @@ es:
|
||||||
notification_email: "La dirección de correo electrónico \"remitente\", utilizada al enviar todos los emails esenciales de sistema. El dominio especificado debe tener correctamente configurados los registros SPF, DKIM y PTR inversos para que los emails se reciban correctamente."
|
notification_email: "La dirección de correo electrónico \"remitente\", utilizada al enviar todos los emails esenciales de sistema. El dominio especificado debe tener correctamente configurados los registros SPF, DKIM y PTR inversos para que los emails se reciban correctamente."
|
||||||
email_custom_headers: "Lista de emails separados por una barra"
|
email_custom_headers: "Lista de emails separados por una barra"
|
||||||
email_subject: "Formato de asunto personalizable para emails estándar. Mira https://meta.discourse.org/t/customize-subject-format-for-standard-emails/20801"
|
email_subject: "Formato de asunto personalizable para emails estándar. Mira https://meta.discourse.org/t/customize-subject-format-for-standard-emails/20801"
|
||||||
use_https: "Forzar al sitio a utilizar sólo HTTPS. AVISO: ¡NO actives esta opción a menos que verifiques completamente la configuración y funcione correctamente en todas partes! ¿Has verificado también que el CDN, los inicios de sesión social y cualquier logo externo / dependencia son compatibles con HTTPS?"
|
force_https: "Forzar al sitio a utilizar sólo HTTPS. AVISO: ¡NO actives esta opción a menos que verifiques completamente la configuración y funcione correctamente en todas partes! ¿Has verificado también que el CDN, los inicios de sesión social y cualquier logo externo / dependencia son compatibles con HTTPS?"
|
||||||
summary_score_threshold: "La puntuación mínima requerida para que un post sea incluido en el 'Resumen de este tema\""
|
summary_score_threshold: "La puntuación mínima requerida para que un post sea incluido en el 'Resumen de este tema\""
|
||||||
summary_posts_required: "El mínimo número de posts en un tema para habilitar el 'Resumen de este tema'"
|
summary_posts_required: "El mínimo número de posts en un tema para habilitar el 'Resumen de este tema'"
|
||||||
summary_likes_required: "Mínimo de \"me gusta\" en un tema para habilitar 'Resumen de este tema'"
|
summary_likes_required: "Mínimo de \"me gusta\" en un tema para habilitar 'Resumen de este tema'"
|
||||||
|
|
|
@ -786,7 +786,7 @@ pt:
|
||||||
notification_email: "Para: endereço de email usado ao enviar emails essenciais do sistema. O domínio especificado aqui deverá ter SPF, DKIM e registos PTR inversos configurados corretamente para a chegada do email."
|
notification_email: "Para: endereço de email usado ao enviar emails essenciais do sistema. O domínio especificado aqui deverá ter SPF, DKIM e registos PTR inversos configurados corretamente para a chegada do email."
|
||||||
email_custom_headers: "A lista delimitada por barras verticais de cabeçalhos de e-mail personalizados"
|
email_custom_headers: "A lista delimitada por barras verticais de cabeçalhos de e-mail personalizados"
|
||||||
email_subject: "Formato de assunto personalizável para emails padrão. Veja https://meta.discourse.org/t/customize-subject-format-for-standard-emails/20801"
|
email_subject: "Formato de assunto personalizável para emails padrão. Veja https://meta.discourse.org/t/customize-subject-format-for-standard-emails/20801"
|
||||||
use_https: "Forçar o site a usar apenas HTTPS. ALERTA: NÃO active esta opção enquanto não verificar que o HTTPS está completamente configurado e funcional. Verificou a sua CDN, todos os logins por rede social, e quaisquer logos ou outras dependências externas para garantir que também são compatíveis com HTTPS?"
|
force_https: "Forçar o site a usar apenas HTTPS. ALERTA: NÃO active esta opção enquanto não verificar que o HTTPS está completamente configurado e funcional. Verificou a sua CDN, todos os logins por rede social, e quaisquer logos ou outras dependências externas para garantir que também são compatíveis com HTTPS?"
|
||||||
summary_score_threshold: "Pontuação mínima necessária para que uma mensagem seja incluída em 'Resumir Este Tópico'"
|
summary_score_threshold: "Pontuação mínima necessária para que uma mensagem seja incluída em 'Resumir Este Tópico'"
|
||||||
summary_posts_required: "Número mínimo de mensagens num tópico antes que 'Resumir Este Tópico' seja ativo."
|
summary_posts_required: "Número mínimo de mensagens num tópico antes que 'Resumir Este Tópico' seja ativo."
|
||||||
summary_likes_required: "Número mínimo de gostos num tópico antes que 'Resumir Este Tópico' seja ativo."
|
summary_likes_required: "Número mínimo de gostos num tópico antes que 'Resumir Este Tópico' seja ativo."
|
||||||
|
|
|
@ -760,7 +760,7 @@ trust:
|
||||||
client: true
|
client: true
|
||||||
|
|
||||||
security:
|
security:
|
||||||
use_https: false
|
force_https: false
|
||||||
enable_escaped_fragments: true
|
enable_escaped_fragments: true
|
||||||
allow_index_in_robots_txt: true
|
allow_index_in_robots_txt: true
|
||||||
enable_noscript_support: true
|
enable_noscript_support: true
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
class UseHttpsNameChangeInSiteSettings < ActiveRecord::Migration
|
||||||
|
def up
|
||||||
|
execute "UPDATE site_settings SET name = 'force_https' WHERE name = 'use_https'"
|
||||||
|
end
|
||||||
|
end
|
|
@ -198,7 +198,7 @@ module Discourse
|
||||||
default_port = 80
|
default_port = 80
|
||||||
protocol = "http"
|
protocol = "http"
|
||||||
|
|
||||||
if SiteSetting.use_https?
|
if SiteSetting.force_https?
|
||||||
protocol = "https"
|
protocol = "https"
|
||||||
default_port = 443
|
default_port = 443
|
||||||
end
|
end
|
||||||
|
|
|
@ -45,7 +45,7 @@ module Onebox
|
||||||
case route[:controller]
|
case route[:controller]
|
||||||
when 'uploads'
|
when 'uploads'
|
||||||
|
|
||||||
url.gsub!("http:", "https:") if SiteSetting.use_https
|
url.gsub!("http:", "https:") if SiteSetting.force_https
|
||||||
if File.extname(uri.path) =~ /^.(mov|mp4|webm|ogv)$/
|
if File.extname(uri.path) =~ /^.(mov|mp4|webm|ogv)$/
|
||||||
return "<video width='100%' height='100%' controls><source src='#{url}'><a href='#{url}'>#{url}</a></video>"
|
return "<video width='100%' height='100%' controls><source src='#{url}'><a href='#{url}'>#{url}</a></video>"
|
||||||
elsif File.extname(uri.path) =~ /^.(mp3|ogg|wav)$/
|
elsif File.extname(uri.path) =~ /^.(mp3|ogg|wav)$/
|
||||||
|
|
|
@ -453,6 +453,28 @@ module SiteSettingExtension
|
||||||
@validator_mapping[type_name]
|
@validator_mapping[type_name]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
DEPRECATED_SETTINGS = [
|
||||||
|
['use_https', 'force_https', '1.7']
|
||||||
|
]
|
||||||
|
|
||||||
|
def setup_deprecated_methods
|
||||||
|
DEPRECATED_SETTINGS.each do |old_setting, new_setting, version|
|
||||||
|
define_singleton_method old_setting do
|
||||||
|
logger.warn("`SiteSetting##{name}` has been deprecated and will be removed in the #{version} Release. Please use `SiteSetting##{new_setting}` instead")
|
||||||
|
self.public_send new_setting
|
||||||
|
end
|
||||||
|
|
||||||
|
define_singleton_method "#{old_setting}?" do
|
||||||
|
logger.warn("`SiteSetting##{name}?` has been deprecated and will be removed in the #{version} Release. Please use `SiteSetting##{new_setting}?` instead")
|
||||||
|
self.public_send "#{new_setting}?"
|
||||||
|
end
|
||||||
|
|
||||||
|
define_singleton_method "#{old_setting}=" do |val|
|
||||||
|
logger.warn("`SiteSetting##{name}=` has been deprecated and will be removed in the #{version} Release. Please use `SiteSetting##{new_setting}=` instead")
|
||||||
|
self.public_send "#{new_setting}=", val
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def setup_methods(name)
|
def setup_methods(name)
|
||||||
clean_name = name.to_s.sub("?", "").to_sym
|
clean_name = name.to_s.sub("?", "").to_sym
|
||||||
|
@ -488,4 +510,10 @@ module SiteSettingExtension
|
||||||
url
|
url
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def logger
|
||||||
|
Rails.logger
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -18,7 +18,7 @@ describe Discourse do
|
||||||
context 'base_url' do
|
context 'base_url' do
|
||||||
context 'when https is off' do
|
context 'when https is off' do
|
||||||
before do
|
before do
|
||||||
SiteSetting.expects(:use_https?).returns(false)
|
SiteSetting.expects(:force_https?).returns(false)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has a non https base url' do
|
it 'has a non https base url' do
|
||||||
|
@ -28,7 +28,7 @@ describe Discourse do
|
||||||
|
|
||||||
context 'when https is on' do
|
context 'when https is on' do
|
||||||
before do
|
before do
|
||||||
SiteSetting.expects(:use_https?).returns(true)
|
SiteSetting.expects(:force_https?).returns(true)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has a non-ssl base url' do
|
it 'has a non-ssl base url' do
|
||||||
|
|
|
@ -105,7 +105,7 @@ describe Email::Styles do
|
||||||
|
|
||||||
context "without https" do
|
context "without https" do
|
||||||
before do
|
before do
|
||||||
SiteSetting.stubs(:use_https).returns(false)
|
SiteSetting.stubs(:force_https).returns(false)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "rewrites the href to have http" do
|
it "rewrites the href to have http" do
|
||||||
|
@ -126,7 +126,7 @@ describe Email::Styles do
|
||||||
|
|
||||||
context "with https" do
|
context "with https" do
|
||||||
before do
|
before do
|
||||||
SiteSetting.stubs(:use_https).returns(true)
|
SiteSetting.stubs(:force_https).returns(true)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "rewrites the forum URL to have https" do
|
it "rewrites the forum URL to have https" do
|
||||||
|
|
|
@ -70,17 +70,41 @@ describe SiteSetting do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "scheme" do
|
describe "scheme" do
|
||||||
|
before do
|
||||||
|
SiteSetting.force_https = true
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
it "returns http when ssl is disabled" do
|
it "returns http when ssl is disabled" do
|
||||||
SiteSetting.use_https = false
|
SiteSetting.force_https = false
|
||||||
expect(SiteSetting.scheme).to eq("http")
|
expect(SiteSetting.scheme).to eq("http")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns https when using ssl" do
|
it "returns https when using ssl" do
|
||||||
SiteSetting.expects(:use_https).returns(true)
|
|
||||||
expect(SiteSetting.scheme).to eq("https")
|
expect(SiteSetting.scheme).to eq("https")
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'deprecated site settings' do
|
||||||
|
before do
|
||||||
|
SiteSetting.force_https = true
|
||||||
|
end
|
||||||
|
|
||||||
|
after do
|
||||||
|
SiteSetting.force_https = false
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '#use_https' do
|
||||||
|
it 'should act as a proxy to the new methods' do
|
||||||
|
expect(SiteSetting.use_https).to eq(true)
|
||||||
|
expect(SiteSetting.use_https?).to eq(true)
|
||||||
|
|
||||||
|
SiteSetting.use_https = false
|
||||||
|
|
||||||
|
expect(SiteSetting.force_https).to eq(false)
|
||||||
|
expect(SiteSetting.force_https?).to eq(false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue