fix(portal): Do not save new condition with an empty value and handle it properly if it's saved like that (#6624)

This commit is contained in:
Andrew Dryga
2024-09-06 10:43:21 -07:00
committed by GitHub
parent 990bc17f6d
commit 6c811796f7
4 changed files with 17 additions and 13 deletions

View File

@@ -143,15 +143,11 @@ defmodule Domain.Policies.Condition.Evaluator do
%Condition{
property: :client_verified,
operator: :is,
values: ["false"]
values: _other
},
%Clients.Client{verified_at: verified_at}
%Clients.Client{}
) do
if is_nil(verified_at) do
{:ok, nil}
else
:error
end
{:ok, nil}
end
def fetch_conformation_expiration(

View File

@@ -199,7 +199,16 @@ defmodule Domain.Policies.Condition.EvaluatorTest do
values: ["false"]
}
assert fetch_conformation_expiration(condition, verified_client) == :error
assert fetch_conformation_expiration(condition, verified_client) == {:ok, nil}
assert fetch_conformation_expiration(condition, not_verified_client) == {:ok, nil}
condition = %Domain.Policies.Condition{
property: :client_verified,
operator: :is,
values: nil
}
assert fetch_conformation_expiration(condition, verified_client) == {:ok, nil}
assert fetch_conformation_expiration(condition, not_verified_client) == {:ok, nil}
end

View File

@@ -42,6 +42,10 @@ defmodule Web.Policies.Components do
|> Enum.empty?())
end
defp maybe_filter(%{}, empty_values: :drop) do
false
end
defp maybe_filter(_condition_attrs, _opts) do
true
end

View File

@@ -338,11 +338,6 @@ defmodule Web.Live.Policies.NewTest do
assert policy.resource_id == resource.id
assert policy.conditions == [
%Domain.Policies.Condition{
property: :client_verified,
operator: :is,
values: nil
},
%Domain.Policies.Condition{
property: :current_utc_datetime,
operator: :is_in_day_of_week_time_ranges,