From 3cdaa75fc1351513a36b83cd53d062ddac9ce20d Mon Sep 17 00:00:00 2001 From: Moritz Date: Mon, 23 Feb 2026 20:48:13 +0100 Subject: [PATCH] Member: remove system-actor fallback in extract_existing_values Per guidelines: actor must come from context. When nil, skip load and return empty map. --- lib/membership/member.ex | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/lib/membership/member.ex b/lib/membership/member.ex index 76ed471..7b70e89 100644 --- a/lib/membership/member.ex +++ b/lib/membership/member.ex @@ -1300,20 +1300,24 @@ defmodule Mv.Membership.Member do 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 - actor = - Map.get(changeset.context, :actor) || - 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) - - _ -> + case Map.get(changeset.context, :actor) do + nil -> %{} + + 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