From 1dac3428d670d477248e82b1da0fdf55897faa72 Mon Sep 17 00:00:00 2001 From: spaenleh Date: Fri, 6 Feb 2026 09:10:14 +0100 Subject: [PATCH 1/2] fix: add validation to account --- lib/admin/accounts/account.ex | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/admin/accounts/account.ex b/lib/admin/accounts/account.ex index c46a7d72f..26562ed7b 100644 --- a/lib/admin/accounts/account.ex +++ b/lib/admin/accounts/account.ex @@ -20,10 +20,17 @@ defmodule Admin.Accounts.Account do account |> cast(attrs, [:name, :email, :type, :extra]) |> validate_required([:name, :email, :type]) + |> validate_name() |> validate_email() + |> validate_type() |> validate_change(:extra, fn _, value -> validate_lang(value) end) end + defp validate_name(changeset) do + changeset + |> validate_length(:name, min: 3, max: 60) + end + defp validate_email(changeset) do changeset |> validate_format(:email, ~r/^[^@,;\s]+@[^@,;\s]+$/, @@ -32,6 +39,11 @@ defmodule Admin.Accounts.Account do |> validate_length(:email, max: 160) end + defp validate_type(changeset) do + changeset + |> validate_inclusion(:type, ["individual", "guest"]) + end + # Validates `lang` only if present; permits nil or empty maps. defp validate_lang(map) when is_map(map) and map == %{}, do: [] From f0d1e32b3157ded7a50df42bdad2a43d3cf12809 Mon Sep 17 00:00:00 2001 From: spaenleh Date: Fri, 6 Feb 2026 09:43:03 +0100 Subject: [PATCH 2/2] fix: tests --- test/admin/accounts_test.exs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/admin/accounts_test.exs b/test/admin/accounts_test.exs index 3a5ef1453..2abe4df88 100644 --- a/test/admin/accounts_test.exs +++ b/test/admin/accounts_test.exs @@ -530,12 +530,12 @@ defmodule Admin.AccountsTest do Accounts.create_member(%{ name: "John Doe", email: "john@example.com", - type: "member" + type: "individual" }) assert member.name == "John Doe" assert member.email == "john@example.com" - assert member.type == "member" + assert member.type == "individual" end end