mirror of
https://github.com/ash-project/ash.git
synced 2024-09-20 13:33:20 +12:00
chore: fix changing_attributes
filter check logic
This commit is contained in:
parent
71cf111d4d
commit
ea12375b4f
3 changed files with 5 additions and 5 deletions
|
@ -785,7 +785,7 @@ defmodule Ash.Actions.Destroy.Bulk do
|
||||||
|
|
||||||
defp authorize_atomic_changeset(query, changeset, opts) do
|
defp authorize_atomic_changeset(query, changeset, opts) do
|
||||||
if opts[:authorize?] do
|
if opts[:authorize?] do
|
||||||
case query.api.can(query, opts[:actor],
|
case query.api.can(changeset, opts[:actor],
|
||||||
return_forbidden_error?: true,
|
return_forbidden_error?: true,
|
||||||
maybe_is: false,
|
maybe_is: false,
|
||||||
alter_source?: true,
|
alter_source?: true,
|
||||||
|
|
|
@ -334,7 +334,7 @@ defmodule Ash.Actions.Update.Bulk do
|
||||||
|
|
||||||
with {:ok, query} <- authorize_bulk_query(query, opts),
|
with {:ok, query} <- authorize_bulk_query(query, opts),
|
||||||
{:ok, atomic_changeset, query} <-
|
{:ok, atomic_changeset, query} <-
|
||||||
authorize_changeset(query, atomic_changeset, opts),
|
authorize_atomic_changeset(query, atomic_changeset, opts),
|
||||||
{:ok, data_layer_query} <- Ash.Query.data_layer_query(query) do
|
{:ok, data_layer_query} <- Ash.Query.data_layer_query(query) do
|
||||||
case Ash.DataLayer.update_query(
|
case Ash.DataLayer.update_query(
|
||||||
data_layer_query,
|
data_layer_query,
|
||||||
|
@ -807,7 +807,7 @@ defmodule Ash.Actions.Update.Bulk do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
defp authorize_changeset(query, changeset, opts) do
|
defp authorize_atomic_changeset(query, changeset, opts) do
|
||||||
if opts[:authorize?] do
|
if opts[:authorize?] do
|
||||||
case changeset.api.can(changeset, opts[:actor],
|
case changeset.api.can(changeset, opts[:actor],
|
||||||
return_forbidden_error?: true,
|
return_forbidden_error?: true,
|
||||||
|
|
|
@ -45,10 +45,10 @@ defmodule Ash.Policy.Check.ChangingAttributes do
|
||||||
)
|
)
|
||||||
|
|
||||||
{{:ok, from}, :error} ->
|
{{:ok, from}, :error} ->
|
||||||
Ash.Expr.expr(^expr and ref(attribute) != ^from)
|
{:cont, Ash.Expr.expr(^expr and ref(attribute) != ^from)}
|
||||||
|
|
||||||
{:error, {:ok, to}} ->
|
{:error, {:ok, to}} ->
|
||||||
Ash.Expr.expr(^expr and ^atomic_ref(attribute) != ^to)
|
{:cont, Ash.Expr.expr(^expr and ^atomic_ref(attribute) != ^to)}
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
{:cont, expr}
|
{:cont, expr}
|
||||||
|
|
Loading…
Reference in a new issue