From b6ff541b13aaac653ea2ab9baa9601f6469fc0c8 Mon Sep 17 00:00:00 2001 From: Willem van den Ende Date: Wed, 1 Apr 2026 22:06:07 +0000 Subject: [PATCH] Fix status banner auth check to use current_scope phx.gen.auth sets current_scope, not current_user. Use !! to ensure boolean for HEEx template and register_and_log_in_user in tests for proper auth session. --- .../controllers/blog_controller.ex | 2 +- .../controllers/blog_controller_test.exs | 22 ++++++------------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/app/lib/firehose_web/controllers/blog_controller.ex b/app/lib/firehose_web/controllers/blog_controller.ex index aa07a62..60ab50f 100644 --- a/app/lib/firehose_web/controllers/blog_controller.ex +++ b/app/lib/firehose_web/controllers/blog_controller.ex @@ -29,7 +29,7 @@ defmodule FirehoseWeb.BlogController do post: post, base_path: blog.base_path(), visibility: visibility, - authenticated: conn.assigns[:current_user] != nil + authenticated: !!(conn.assigns[:current_scope] && conn.assigns.current_scope.user) ) end diff --git a/app/test/firehose_web/controllers/blog_controller_test.exs b/app/test/firehose_web/controllers/blog_controller_test.exs index a20c29a..ce8db37 100644 --- a/app/test/firehose_web/controllers/blog_controller_test.exs +++ b/app/test/firehose_web/controllers/blog_controller_test.exs @@ -25,23 +25,17 @@ defmodule FirehoseWeb.BlogControllerTest do end describe "GET /blog/:blog_id/:slug - status banners" do + setup :register_and_log_in_user + test "authenticated user sees draft banner on draft post", %{conn: conn} do - conn = - conn - |> init_test_session(%{}) - |> assign(:current_user, %{id: 1}) - |> get(~p"/blog/engineering/hello-world") + conn = get(conn, ~p"/blog/engineering/hello-world") assert html_response(conn, 200) =~ "Draft" assert conn.resp_body =~ "not published" end test "authenticated user sees scheduled banner on future post", %{conn: conn} do - conn = - conn - |> init_test_session(%{}) - |> assign(:current_user, %{id: 1}) - |> get(~p"/blog/engineering/future-test-post") + conn = get(conn, ~p"/blog/engineering/future-test-post") response = html_response(conn, 200) assert response =~ "scheduled for" @@ -49,17 +43,15 @@ defmodule FirehoseWeb.BlogControllerTest do end test "authenticated user sees no banner on live post", %{conn: conn} do - conn = - conn - |> init_test_session(%{}) - |> assign(:current_user, %{id: 1}) - |> get(~p"/blog/engineering/why-firehose") + conn = get(conn, ~p"/blog/engineering/why-firehose") response = html_response(conn, 200) refute response =~ "Draft" refute response =~ "scheduled for" end + end + describe "GET /blog/:blog_id/:slug - no banners for unauthenticated" do test "unauthenticated user sees no banner on draft post", %{conn: conn} do response = conn