From fcc319d965091a984c917a9f36bca4aa2759751e Mon Sep 17 00:00:00 2001 From: Zach Daniel Date: Thu, 13 Jul 2023 09:05:04 -0400 Subject: [PATCH] improvement: add `ForbiddenField` exception --- lib/ash/error/forbidden/forbidden_field.ex | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 lib/ash/error/forbidden/forbidden_field.ex diff --git a/lib/ash/error/forbidden/forbidden_field.ex b/lib/ash/error/forbidden/forbidden_field.ex new file mode 100644 index 00000000..77d1e70d --- /dev/null +++ b/lib/ash/error/forbidden/forbidden_field.ex @@ -0,0 +1,18 @@ +defmodule Ash.Error.Forbidden.ForbiddenField do + @moduledoc "Raised in cases where access to a specific field was prevented" + + require Logger + use Ash.Error.Exception + + def_ash_error([:resource, :field], class: :forbidden) + + defimpl Ash.ErrorKind do + def id(_), do: Ecto.UUID.generate() + + def message(error) do + "Forbidden: cannot access #{error.field} on #{inspect(error.resource)}" + end + + def code(_), do: "forbidden_field" + end +end