From 5c095d0e6d3ebf2823e44eb2a8c6522efef71c25 Mon Sep 17 00:00:00 2001 From: Zach Daniel Date: Wed, 17 Jul 2024 15:54:54 -0400 Subject: [PATCH] fix: only use attribute for filtering when multitenancy strategy == :attribute --- lib/ash/actions/read/read.ex | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/ash/actions/read/read.ex b/lib/ash/actions/read/read.ex index 9dc3f9a02..bcdf58bff 100644 --- a/lib/ash/actions/read/read.ex +++ b/lib/ash/actions/read/read.ex @@ -1503,12 +1503,16 @@ defmodule Ash.Actions.Read do end defp handle_attribute_multitenancy(query) do - multitenancy_attribute = Ash.Resource.Info.multitenancy_attribute(query.resource) + if query.tenant && Ash.Resource.Info.multitenancy_strategy(query.resource) == :attribute do + multitenancy_attribute = Ash.Resource.Info.multitenancy_attribute(query.resource) - if multitenancy_attribute && query.tenant do - {m, f, a} = Ash.Resource.Info.multitenancy_parse_attribute(query.resource) - attribute_value = apply(m, f, [query.to_tenant | a]) - Ash.Query.filter(query, ^ref(multitenancy_attribute) == ^attribute_value) + if multitenancy_attribute do + {m, f, a} = Ash.Resource.Info.multitenancy_parse_attribute(query.resource) + attribute_value = apply(m, f, [query.to_tenant | a]) + Ash.Query.filter(query, ^ref(multitenancy_attribute) == ^attribute_value) + else + query + end else query end