fix: the API is defined on the form, not on the form.source (#131)

This commit is contained in:
Rebecca Le 2024-02-06 10:30:08 +08:00 committed by GitHub
parent 8ccbed8f06
commit 3726d07ee2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -637,7 +637,7 @@ defmodule AshPhoenix.Form do
end
def can_submit?(form) do
unless form.source.api do
unless form.api do
raise """
No Api configured, but one is required to check authorization to submit a form.
@ -647,7 +647,7 @@ defmodule AshPhoenix.Form do
"""
end
form.source.api.can?(form.source, form.source.context[:private][:actor])
form.api.can?(form.source, form.source.context[:private][:actor])
end
@spec ensure_can_submit!(t()) :: t()
@ -657,7 +657,7 @@ defmodule AshPhoenix.Form do
end
def ensure_can_submit!(form) do
unless form.source.api do
unless form.api do
raise """
No Api configured, but one is required to check authorization to submit a form.
@ -667,7 +667,9 @@ defmodule AshPhoenix.Form do
"""
end
case form.source.api.can(form.source, form.source.context[:private][:actor]) do
case form.api.can(form.source, form.source.context[:private][:actor],
return_forbidden_error?: true
) do
{:ok, false, %{stacktrace: %{stacktrace: stacktrace}} = exception} ->
reraise exception, stacktrace