From fdb09128b4087e1ff5b4a10c0e2131d31af6c4e9 Mon Sep 17 00:00:00 2001 From: jamey Date: Thu, 12 Feb 2026 14:55:57 +0000 Subject: [PATCH] fix signed_in_path to always redirect to /admin after login Single-tenant app: every user is the admin. The previous pattern match on conn.assigns.current_scope didn't work for first-time logins because the scope isn't assigned to the conn yet at that point, causing the fallback to ~p"/" instead of ~p"/admin". Co-Authored-By: Claude Opus 4.6 --- lib/simpleshop_theme_web/user_auth.ex | 8 ++------ .../controllers/user_session_controller_test.exs | 8 ++++---- test/simpleshop_theme_web/live/auth/confirmation_test.exs | 2 +- test/simpleshop_theme_web/live/auth/login_test.exs | 2 +- test/simpleshop_theme_web/live/auth/registration_test.exs | 2 +- test/simpleshop_theme_web/user_auth_test.exs | 2 +- 6 files changed, 10 insertions(+), 14 deletions(-) diff --git a/lib/simpleshop_theme_web/user_auth.ex b/lib/simpleshop_theme_web/user_auth.ex index dfc24b9..c06d3ec 100644 --- a/lib/simpleshop_theme_web/user_auth.ex +++ b/lib/simpleshop_theme_web/user_auth.ex @@ -257,12 +257,8 @@ defmodule SimpleshopThemeWeb.UserAuth do end @doc "Returns the path to redirect to after log in." - # the user was already logged in, redirect to admin dashboard - def signed_in_path(%Plug.Conn{assigns: %{current_scope: %Scope{user: %Accounts.User{}}}}) do - ~p"/admin" - end - - def signed_in_path(_), do: ~p"/" + # Single-tenant: every user is the admin, always go to dashboard + def signed_in_path(_), do: ~p"/admin" @doc """ Plug for routes that require the user to be authenticated. diff --git a/test/simpleshop_theme_web/controllers/user_session_controller_test.exs b/test/simpleshop_theme_web/controllers/user_session_controller_test.exs index 91ab3bd..8307905 100644 --- a/test/simpleshop_theme_web/controllers/user_session_controller_test.exs +++ b/test/simpleshop_theme_web/controllers/user_session_controller_test.exs @@ -18,7 +18,7 @@ defmodule SimpleshopThemeWeb.UserSessionControllerTest do }) assert get_session(conn, :user_token) - assert redirected_to(conn) == ~p"/" + assert redirected_to(conn) == ~p"/admin" # Now do a logged in request and assert on the page content conn = get(conn, ~p"/admin/settings") @@ -39,7 +39,7 @@ defmodule SimpleshopThemeWeb.UserSessionControllerTest do }) assert conn.resp_cookies["_simpleshop_theme_web_user_remember_me"] - assert redirected_to(conn) == ~p"/" + assert redirected_to(conn) == ~p"/admin" end test "logs the user in with return to", %{conn: conn, user: user} do @@ -80,7 +80,7 @@ defmodule SimpleshopThemeWeb.UserSessionControllerTest do }) assert get_session(conn, :user_token) - assert redirected_to(conn) == ~p"/" + assert redirected_to(conn) == ~p"/admin" # Now do a logged in request and assert on the page content conn = get(conn, ~p"/admin/settings") @@ -99,7 +99,7 @@ defmodule SimpleshopThemeWeb.UserSessionControllerTest do }) assert get_session(conn, :user_token) - assert redirected_to(conn) == ~p"/" + assert redirected_to(conn) == ~p"/admin" assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ "User confirmed successfully." assert Accounts.get_user!(user.id).confirmed_at diff --git a/test/simpleshop_theme_web/live/auth/confirmation_test.exs b/test/simpleshop_theme_web/live/auth/confirmation_test.exs index 36c56a9..1d5f410 100644 --- a/test/simpleshop_theme_web/live/auth/confirmation_test.exs +++ b/test/simpleshop_theme_web/live/auth/confirmation_test.exs @@ -64,7 +64,7 @@ defmodule SimpleshopThemeWeb.Auth.ConfirmationTest do assert Accounts.get_user!(user.id).confirmed_at # we are logged in now assert get_session(conn, :user_token) - assert redirected_to(conn) == ~p"/" + assert redirected_to(conn) == ~p"/admin" # log out, new conn conn = build_conn() diff --git a/test/simpleshop_theme_web/live/auth/login_test.exs b/test/simpleshop_theme_web/live/auth/login_test.exs index 05b0693..5ddf010 100644 --- a/test/simpleshop_theme_web/live/auth/login_test.exs +++ b/test/simpleshop_theme_web/live/auth/login_test.exs @@ -56,7 +56,7 @@ defmodule SimpleshopThemeWeb.Auth.LoginTest do conn = submit_form(form, conn) - assert redirected_to(conn) == ~p"/" + assert redirected_to(conn) == ~p"/admin" end test "redirects to login page with a flash error if credentials are invalid", %{ diff --git a/test/simpleshop_theme_web/live/auth/registration_test.exs b/test/simpleshop_theme_web/live/auth/registration_test.exs index c7a56da..21ce59a 100644 --- a/test/simpleshop_theme_web/live/auth/registration_test.exs +++ b/test/simpleshop_theme_web/live/auth/registration_test.exs @@ -25,7 +25,7 @@ defmodule SimpleshopThemeWeb.Auth.RegistrationTest do conn |> log_in_user(user_fixture()) |> live(~p"/users/register") - |> follow_redirect(conn, ~p"/") + |> follow_redirect(conn, ~p"/admin") assert {:ok, _conn} = result end diff --git a/test/simpleshop_theme_web/user_auth_test.exs b/test/simpleshop_theme_web/user_auth_test.exs index cadde1a..8a371f5 100644 --- a/test/simpleshop_theme_web/user_auth_test.exs +++ b/test/simpleshop_theme_web/user_auth_test.exs @@ -25,7 +25,7 @@ defmodule SimpleshopThemeWeb.UserAuthTest do conn = UserAuth.log_in_user(conn, user) assert token = get_session(conn, :user_token) assert get_session(conn, :live_socket_id) == "users_sessions:#{Base.url_encode64(token)}" - assert redirected_to(conn) == ~p"/" + assert redirected_to(conn) == ~p"/admin" assert Accounts.get_user_by_session_token(token) end