From e3bea1782789e65a903b719f94f61615f9964a0f Mon Sep 17 00:00:00 2001 From: Moritz Date: Tue, 3 Feb 2026 23:52:24 +0100 Subject: [PATCH] Member show & MembershipFees: permissions, delete all, regenerate, errors - Show: handle_info :member_updated and :put_flash; Linked User only when can_access_page? /users - MembershipFeesComponent: can_create_cycle/can_destroy_cycle/can_update_cycle; buttons gated - Delete all cycles via Ash.destroy (policy enforced); format_error Forbidden - Regenerate cycles for normal_user and admin (no admin-only check) - Member form: format_error tuple for membership_fee_type_id; Select a membership fee type (no None) - show_membership_fees_test: read_only UI and policy tests --- lib/mv_web/live/member_live/form.ex | 6 +- lib/mv_web/live/member_live/show.ex | 53 +++-- .../show/membership_fees_component.ex | 222 +++++++++--------- .../member_live/show_membership_fees_test.exs | 61 +++++ 4 files changed, 219 insertions(+), 123 deletions(-) diff --git a/lib/mv_web/live/member_live/form.ex b/lib/mv_web/live/member_live/form.ex index b72add6..f9588c0 100644 --- a/lib/mv_web/live/member_live/form.ex +++ b/lib/mv_web/live/member_live/form.ex @@ -177,7 +177,8 @@ defmodule MvWeb.MemberLive.Form do phx-change="validate" value={@form[:membership_fee_type_id].value || ""} > - + <%!-- No "None" option: a membership fee type is required (validated in Member resource). --%> + <%= for fee_type <- @available_fee_types do %>