Add require_login config option to redirect unauthenticated users

This commit is contained in:
Ethan 2026-06-30 11:25:15 +04:00
parent fe2b6dbd67
commit 625d128645
2 changed files with 16 additions and 0 deletions

View File

@ -200,6 +200,21 @@ end
before_all do |env|
Invidious::Routes::BeforeAll.handle(env)
# Redirect unauthenticated users if require_login is enabled
if CONFIG.require_login && env.get?("user").nil?
path = env.request.path
allowed = {
"/login", "/register", "/api/",
"/sb/", "/vi/", "/s_p/", "/yts/", "/ggpht/",
"/api/manifest/", "/videoplayback", "/latest_version",
"/download", "/companion/",
}
unless allowed.any? { |p| path.starts_with?(p) }
env.redirect "/login?return_path=#{URI.encode_www_form(path)}"
halt env, 302
end
end
end
Invidious::Routing.register_all

View File

@ -128,6 +128,7 @@ class Config
property popular_enabled : Bool = true
property captcha_enabled : Bool = true
property login_enabled : Bool = true
property require_login : Bool = false
property registration_enabled : Bool = true
property statistics_enabled : Bool = false
property admins : Array(String) = [] of String