From 91640447c009b0832884c300365b53e6bfdc0c7a Mon Sep 17 00:00:00 2001 From: evazion Date: Tue, 2 Jun 2020 18:38:58 -0500 Subject: [PATCH] Fix antiproxying config options. Don't embed config options directly in Javascript. Including them in the Javascript forces us to recompile the Javascript whenever these options change, which requires us to redeploy the entire site instead of just restarting the app server. --- .../src/javascripts/{common.js.erb => common.js} | 8 ++------ app/views/layouts/default.html.erb | 1 + 2 files changed, 3 insertions(+), 6 deletions(-) rename app/javascript/src/javascripts/{common.js.erb => common.js} (66%) diff --git a/app/javascript/src/javascripts/common.js.erb b/app/javascript/src/javascripts/common.js similarity index 66% rename from app/javascript/src/javascripts/common.js.erb rename to app/javascript/src/javascripts/common.js index 24c033dea..931266d8e 100644 --- a/app/javascript/src/javascripts/common.js.erb +++ b/app/javascript/src/javascripts/common.js @@ -20,12 +20,8 @@ $(function() { e.preventDefault(); }); - const CANONICAL_DOMAIN = <%= Danbooru.config.domain.to_json.html_safe %>; - const CANONICAL_HOSTNAME = <%= Danbooru.config.hostname.to_json.html_safe %>; - const ENABLE_ANTIPROXYING = <%= Danbooru.config.enable_antiproxying?.to_json.html_safe %>; - - if (ENABLE_ANTIPROXYING && !location.hostname.endsWith(CANONICAL_DOMAIN)) { - location.hostname = CANONICAL_HOSTNAME; + if (Danbooru.config["enable_antiproxying?"] && !location.hostname.endsWith(Danbooru.config.domain)) { + location.hostname = Danbooru.config.hostname; } }); diff --git a/app/views/layouts/default.html.erb b/app/views/layouts/default.html.erb index 7944e26c1..2fddb3018 100644 --- a/app/views/layouts/default.html.erb +++ b/app/views/layouts/default.html.erb @@ -58,6 +58,7 @@ window.Danbooru = {}; } + window.Danbooru.config = <%= [:hostname, :domain, :enable_antiproxying?].map { |opt| [opt, Danbooru.config.send(opt)] }.to_h.to_json.html_safe %>; window.Danbooru.notice = Danbooru.Utility.notice; window.Danbooru.error = Danbooru.Utility.error;