diff options
| -rw-r--r-- | CHANGELOG.md | 5 | ||||
| -rw-r--r-- | lib/pleroma/web/api_spec/cast_and_validate.ex | 4 | 
2 files changed, 9 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index e02e84301..213467d6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,11 @@ switched to a new configuration mechanism, however it was not officially removed  - Add documented-but-missing chat pagination.  - Allow sending out emails again. +## Unreleased (Patch) + +### Changed +- API: Empty parameter values for integer parameters are now ignored in non-strict validaton mode. +  ## [2.1.2] - 2020-09-17  ### Security diff --git a/lib/pleroma/web/api_spec/cast_and_validate.ex b/lib/pleroma/web/api_spec/cast_and_validate.ex index fbfc27d6f..6d1a7ebbc 100644 --- a/lib/pleroma/web/api_spec/cast_and_validate.ex +++ b/lib/pleroma/web/api_spec/cast_and_validate.ex @@ -115,6 +115,10 @@ defmodule Pleroma.Web.ApiSpec.CastAndValidate do              %{reason: :unexpected_field, name: name, path: [name]}, params ->                Map.delete(params, name) +            # Filter out empty params +            %{reason: :invalid_type, path: [name_atom], value: ""}, params -> +              Map.delete(params, to_string(name_atom)) +              %{reason: :invalid_enum, name: nil, path: path, value: value}, params ->                path = path |> Enum.reverse() |> tl() |> Enum.reverse() |> list_items_to_string()                update_in(params, path, &List.delete(&1, value))  | 
