mirror of
https://github.com/hkalexling/Mango.git
synced 2025-08-04 11:55:30 -04:00
Respect base url setting when redirecting
This commit is contained in:
parent
8658cb8306
commit
60d4cee0a9
@ -11,7 +11,7 @@ class AuthHandler < Kemal::Handler
|
|||||||
|
|
||||||
cookie = env.request.cookies.find { |c| c.name == "token" }
|
cookie = env.request.cookies.find { |c| c.name == "token" }
|
||||||
if cookie.nil? || !@storage.verify_token cookie.value
|
if cookie.nil? || !@storage.verify_token cookie.value
|
||||||
return env.redirect "/login"
|
return redirect env, "/login"
|
||||||
end
|
end
|
||||||
|
|
||||||
if request_path_startswith env, ["/admin", "/api/admin", "/download"]
|
if request_path_startswith env, ["/admin", "/api/admin", "/download"]
|
||||||
|
@ -48,13 +48,13 @@ class AdminRouter < Router
|
|||||||
|
|
||||||
@context.storage.new_user username, password, admin
|
@context.storage.new_user username, password, admin
|
||||||
|
|
||||||
env.redirect "/admin/user"
|
redirect env, "/admin/user"
|
||||||
rescue e
|
rescue e
|
||||||
@context.error e
|
@context.error e
|
||||||
redirect_url = URI.new \
|
redirect_url = URI.new \
|
||||||
path: "/admin/user/edit",
|
path: "/admin/user/edit",
|
||||||
query: hash_to_query({"error" => e.message})
|
query: hash_to_query({"error" => e.message})
|
||||||
env.redirect redirect_url.to_s
|
redirect env, redirect_url.to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
post "/admin/user/edit/:original_username" do |env|
|
post "/admin/user/edit/:original_username" do |env|
|
||||||
@ -85,14 +85,14 @@ class AdminRouter < Router
|
|||||||
@context.storage.update_user \
|
@context.storage.update_user \
|
||||||
original_username, username, password, admin
|
original_username, username, password, admin
|
||||||
|
|
||||||
env.redirect "/admin/user"
|
redirect env, "/admin/user"
|
||||||
rescue e
|
rescue e
|
||||||
@context.error e
|
@context.error e
|
||||||
redirect_url = URI.new \
|
redirect_url = URI.new \
|
||||||
path: "/admin/user/edit",
|
path: "/admin/user/edit",
|
||||||
query: hash_to_query({"username" => original_username, \
|
query: hash_to_query({"username" => original_username, \
|
||||||
"admin" => admin, "error" => e.message})
|
"admin" => admin, "error" => e.message})
|
||||||
env.redirect redirect_url.to_s
|
redirect env, redirect_url.to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
get "/admin/downloads" do |env|
|
get "/admin/downloads" do |env|
|
||||||
|
@ -13,7 +13,7 @@ class MainRouter < Router
|
|||||||
rescue e
|
rescue e
|
||||||
@context.error "Error when attempting to log out: #{e}"
|
@context.error "Error when attempting to log out: #{e}"
|
||||||
ensure
|
ensure
|
||||||
env.redirect "/login"
|
redirect env, "/login"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -26,9 +26,9 @@ class MainRouter < Router
|
|||||||
cookie = HTTP::Cookie.new "token", token
|
cookie = HTTP::Cookie.new "token", token
|
||||||
cookie.expires = Time.local.shift years: 1
|
cookie.expires = Time.local.shift years: 1
|
||||||
env.response.cookies << cookie
|
env.response.cookies << cookie
|
||||||
env.redirect "/"
|
redirect env, "/"
|
||||||
rescue
|
rescue
|
||||||
env.redirect "/login"
|
redirect env, "/login"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ class ReaderRouter < Router
|
|||||||
# might not have actually read them
|
# might not have actually read them
|
||||||
page = [page - 2 * IMGS_PER_PAGE, 1].max
|
page = [page - 2 * IMGS_PER_PAGE, 1].max
|
||||||
|
|
||||||
env.redirect "/reader/#{title.id}/#{entry.id}/#{page}"
|
redirect env, "/reader/#{title.id}/#{entry.id}/#{page}"
|
||||||
rescue e
|
rescue e
|
||||||
@context.error e
|
@context.error e
|
||||||
env.response.status_code = 404
|
env.response.status_code = 404
|
||||||
|
@ -99,3 +99,8 @@ end
|
|||||||
def random_str
|
def random_str
|
||||||
UUID.random.to_s.gsub "-", ""
|
UUID.random.to_s.gsub "-", ""
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def redirect(env, path)
|
||||||
|
base = Config.current.base_url
|
||||||
|
env.redirect File.join base, path
|
||||||
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user