Merge branch 'feature/update-welcome-setting-in-description' into 'develop'
[akkoma] / lib / pleroma / web / activity_pub / object_validators / question_validator.ex
index d248c6aec2fb54c4a4c856b2ea2b97c5dddc67a4..f47acf606aabd89ddc756f83176db4f4db48e628 100644 (file)
@@ -83,17 +83,23 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.QuestionValidator do
 
   # based on Pleroma.Web.ActivityPub.Utils.lazy_put_objects_defaults
   defp fix_defaults(data) do
-    %{data: %{"id" => context}, id: context_id} = Utils.create_context(data["context"])
+    %{data: %{"id" => context}, id: context_id} =
+      Utils.create_context(data["context"] || data["conversation"])
 
     data
-    |> Map.put_new_lazy("id", &Utils.generate_object_id/0)
     |> Map.put_new_lazy("published", &Utils.make_date/0)
     |> Map.put_new("context", context)
     |> Map.put_new("context_id", context_id)
   end
 
+  defp fix_attribution(data) do
+    data
+    |> Map.put_new("actor", data["attributedTo"])
+  end
+
   defp fix(data) do
     data
+    |> fix_attribution()
     |> fix_closed()
     |> fix_defaults()
   end
@@ -114,7 +120,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.QuestionValidator do
     |> validate_required([:id, :actor, :attributedTo, :type, :context])
     |> CommonValidations.validate_any_presence([:cc, :to])
     |> CommonValidations.validate_fields_match([:actor, :attributedTo])
-    |> CommonValidations.validate_actor_is_active()
+    |> CommonValidations.validate_actor_presence()
     |> CommonValidations.validate_any_presence([:oneOf, :anyOf])
     |> CommonValidations.validate_host_match()
   end