From 151240df329e1bdbb3d7338b720823e7730217cc Mon Sep 17 00:00:00 2001 From: Zach Daniel Date: Sun, 11 Aug 2024 20:19:16 -0400 Subject: [PATCH] chore: add `false` filter on nil identity_field (#767) --- .../strategies/password/sign_in_preparation.ex | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/ash_authentication/strategies/password/sign_in_preparation.ex b/lib/ash_authentication/strategies/password/sign_in_preparation.ex index 2d93629..1903067 100644 --- a/lib/ash_authentication/strategies/password/sign_in_preparation.ex +++ b/lib/ash_authentication/strategies/password/sign_in_preparation.ex @@ -25,8 +25,15 @@ defmodule AshAuthentication.Strategy.Password.SignInPreparation do identity_field = strategy.identity_field identity = Query.get_argument(query, identity_field) + query = + if is_nil(identity) do + # This will fail due to the argument being `nil`, so this is just a formality + Query.filter(query, false) + else + Query.filter(query, ^ref(identity_field) == ^identity) + end + query - |> Query.filter(^ref(identity_field) == ^identity) |> check_sign_in_token_configuration(strategy) |> Query.before_action(fn query -> Ash.Query.ensure_selected(query, [strategy.hashed_password_field])