diff --git a/changelog.d/question-validator.fix b/changelog.d/question-validator.fix new file mode 100644 index 000000000..91093daee --- /dev/null +++ b/changelog.d/question-validator.fix @@ -0,0 +1 @@ +Polls could fail to refresh due to an incorrect data validation constraint. diff --git a/lib/pleroma/web/activity_pub/object_validators/question_validator.ex b/lib/pleroma/web/activity_pub/object_validators/question_validator.ex index 7f9d4d648..21754fa8a 100644 --- a/lib/pleroma/web/activity_pub/object_validators/question_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/question_validator.ex @@ -59,6 +59,13 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.QuestionValidator do end end + defp fix_likes(data) do + cond do + is_list(data["likes"]) -> data + true -> Map.drop(data, ["likes"]) + end + end + defp fix(data) do data |> CommonFixes.fix_actor() @@ -66,6 +73,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.QuestionValidator do |> CommonFixes.fix_quote_url() |> Transmogrifier.fix_emoji() |> fix_closed() + |> fix_likes() end def changeset(struct, data) do