Member: remove system-actor fallback in extract_existing_values

Per guidelines: actor must come from context. When nil, skip load and return empty map.
This commit is contained in:
Moritz 2026-02-23 20:48:13 +01:00
parent 482a335d36
commit 3cdaa75fc1
Signed by: moritz
GPG key ID: 1020A035E5DD0824

View file

@ -1300,20 +1300,24 @@ defmodule Mv.Membership.Member do
end end
end end
# Extracts custom field values from existing member data (update scenario) # Extracts custom field values from existing member data (update scenario).
# Actor must come from context; no system-actor fallback (per guidelines).
# When no actor is present we skip the load and return empty map.
defp extract_existing_values(member_data, changeset) do defp extract_existing_values(member_data, changeset) do
actor = case Map.get(changeset.context, :actor) do
Map.get(changeset.context, :actor) || nil ->
Mv.Helpers.SystemActor.get_system_actor()
opts = Helpers.ash_actor_opts(actor)
case Ash.load(member_data, :custom_field_values, opts) do
{:ok, %{custom_field_values: existing_values}} ->
Enum.reduce(existing_values, %{}, &extract_value_from_cfv/2)
_ ->
%{} %{}
actor ->
opts = Helpers.ash_actor_opts(actor)
case Ash.load(member_data, :custom_field_values, opts) do
{:ok, %{custom_field_values: existing_values}} ->
Enum.reduce(existing_values, %{}, &extract_value_from_cfv/2)
_ ->
%{}
end
end end
end end