From 0d4ab7fc14ef1ad5a7a33b5b029455e0086ffe77 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Fri, 30 Jan 2026 16:20:04 -0600 Subject: [PATCH] fix session view --- .../live/device_live/show.html.heex | 6 +++--- lib/towerops_web/live/user_settings_live.ex | 10 ++++------ lib/towerops_web/user_auth.ex | 17 ++++++++++++++--- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/lib/towerops_web/live/device_live/show.html.heex b/lib/towerops_web/live/device_live/show.html.heex index 9fad3da7..4fd9a4ef 100644 --- a/lib/towerops_web/live/device_live/show.html.heex +++ b/lib/towerops_web/live/device_live/show.html.heex @@ -195,7 +195,7 @@ end ]} > - Debug + Raw Data <% end %> @@ -1557,7 +1557,7 @@ <% end %>

- Copyable Debug Data + Copyable Raw Data

+ ><%= Jason.encode!(%{device_id: @device.id, raw_discovery_data: @snmp_device.raw_discovery_data}, pretty: true) %>

Click the text box to select all data, then copy with Cmd+C or Ctrl+C diff --git a/lib/towerops_web/live/user_settings_live.ex b/lib/towerops_web/live/user_settings_live.ex index e562808c..a6bcf14c 100644 --- a/lib/towerops_web/live/user_settings_live.ex +++ b/lib/towerops_web/live/user_settings_live.ex @@ -282,14 +282,12 @@ defmodule ToweropsWeb.UserSettingsLive do {:noreply, socket} end - defp get_current_token_id(socket) do - token = socket.assigns.current_token - - if token do - Accounts.get_user_token_id_by_value(token) - end + defp get_current_token_id(%{current_token: token}) when is_binary(token) do + Accounts.get_user_token_id_by_value(token) end + defp get_current_token_id(_), do: nil + defp assign_profile_form(socket) do user = socket.assigns.current_scope.user assign(socket, :profile_form, user |> Accounts.change_user_profile() |> to_form()) diff --git a/lib/towerops_web/user_auth.ex b/lib/towerops_web/user_auth.ex index f1aa016f..5cde79f2 100644 --- a/lib/towerops_web/user_auth.ex +++ b/lib/towerops_web/user_auth.ex @@ -50,6 +50,7 @@ defmodule ToweropsWeb.UserAuth do conn |> create_or_extend_session(user, params) |> maybe_set_default_organization(user) + |> delete_session(:user_return_to) redirect(conn, to: user_return_to || signed_in_path(user)) end @@ -205,9 +206,19 @@ defmodule ToweropsWeb.UserAuth do defp renew_session(conn, _user) do delete_csrf_token() - conn - |> configure_session(renew: true) - |> clear_session() + # Preserve return path across session renewal for sudo mode re-auth + user_return_to = get_session(conn, :user_return_to) + + conn = + conn + |> configure_session(renew: true) + |> clear_session() + + if user_return_to do + put_session(conn, :user_return_to, user_return_to) + else + conn + end end defp maybe_write_remember_me_cookie(conn, token, %{"remember_me" => "true"}, _),