Skip to content

Commit

Permalink
fix: properly parse changeset template for filters
Browse files Browse the repository at this point in the history
  • Loading branch information
zachdaniel committed Apr 16, 2024
1 parent 3044339 commit 371c2d1
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions lib/ash/changeset/changeset.ex
Original file line number Diff line number Diff line change
Expand Up @@ -4905,13 +4905,24 @@ defmodule Ash.Changeset do

def filter(changeset, expr) do
if Ash.DataLayer.data_layer_can?(changeset.resource, :changeset_filter) do
case Ash.Filter.add_to_filter(
changeset.filter,
expression =
Ash.Expr.fill_template(
changeset.filter,
changeset.context[:private][:actor],
changeset.arguments,
changeset.context
)

with {:ok, expression} <- Ash.Filter.hydrate_refs(expression, %{
resource: changeset.resource,
public?: false
}),
{:ok, expression} <- Ash.Filter.add_to_filter(
expression,
Ash.Filter.parse!(changeset.resource, expr)
) do
{:ok, filter} ->
%{changeset | filter: filter}

%{changeset | filter: expression}
else
{:error, error} ->
Ash.Changeset.add_error(changeset, error)
end
Expand Down

0 comments on commit 371c2d1

Please sign in to comment.