summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/invidious.cr29
-rw-r--r--src/invidious/views/template.ecr2
2 files changed, 28 insertions, 3 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index 98f9bc66..64273a17 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -1322,7 +1322,19 @@ post "/preferences" do |env|
File.write("config/config.yml", config.to_yaml)
end
else
- env.response.cookies["PREFS"] = preferences
+ if Kemal.config.ssl || config.https_only
+ secure = true
+ else
+ secure = false
+ end
+
+ if config.domain
+ env.response.cookies["PREFS"] = HTTP::Cookie.new(name: "PREFS", domain: "#{config.domain}", value: preferences, expires: Time.now + 2.years,
+ secure: secure, http_only: true)
+ else
+ env.response.cookies["PREFS"] = HTTP::Cookie.new(name: "PREFS", value: preferences, expires: Time.now + 2.years,
+ secure: secure, http_only: true)
+ end
end
env.redirect referer
@@ -1341,8 +1353,21 @@ get "/toggle_theme" do |env|
else
preferences = env.get("preferences").as(Preferences)
preferences.dark_mode = !preferences.dark_mode
+ preferences = preferences.to_json
- env.response.cookies["PREFS"] = preferences.to_json
+ if Kemal.config.ssl || config.https_only
+ secure = true
+ else
+ secure = false
+ end
+
+ if config.domain
+ env.response.cookies["PREFS"] = HTTP::Cookie.new(name: "PREFS", domain: "#{config.domain}", value: preferences, expires: Time.now + 2.years,
+ secure: secure, http_only: true)
+ else
+ env.response.cookies["PREFS"] = HTTP::Cookie.new(name: "PREFS", value: preferences, expires: Time.now + 2.years,
+ secure: secure, http_only: true)
+ end
end
env.redirect referer
diff --git a/src/invidious/views/template.ecr b/src/invidious/views/template.ecr
index 35e52dcf..01e9c355 100644
--- a/src/invidious/views/template.ecr
+++ b/src/invidious/views/template.ecr
@@ -77,7 +77,7 @@
<% else %>
<div class="pure-u-1-3">
<a href="/toggle_theme?referer=<%= env.get?("current_page") %>" class="pure-menu-heading">
- <% if env.get?("preferences").try &.as(Preferences).dark_mode %>
+ <% if env.get("preferences").as(Preferences).dark_mode %>
<i class="icon ion-ios-sunny"></i>
<% else %>
<i class="icon ion-ios-moon"></i>