towerops/lib/towerops_web/controllers/debug_controller.ex

31 lines
788 B
Elixir

defmodule ToweropsWeb.DebugController do
@moduledoc """
Debug endpoints for troubleshooting. Requires superuser authentication.
"""
use ToweropsWeb, :controller
@doc """
Display all request headers for debugging cloudflared visitor location headers.
Available at /admin/headers (requires superuser authentication).
"""
def headers(conn, _params) do
# Extract all request headers
headers = Map.new(conn.req_headers)
conn
|> put_resp_content_type("application/json")
|> send_resp(
200,
Jason.encode!(
%{
headers: headers,
remote_ip: conn.remote_ip |> :inet.ntoa() |> to_string(),
request_path: conn.request_path,
method: conn.method
},
pretty: true
)
)
end
end