aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2019-03-14 19:29:47 +0000
committerWilliam Pitcock <nenolod@dereferenced.org>2019-03-14 19:36:17 +0000
commit64b0120d678b106f33d5c903749fcac5ed5a1ed7 (patch)
treeef56c48acb02862268fe1e14da550c48c9246fbe
parent3b48d5f0c27b42a6ea409fffbdc6b831da2ff4ca (diff)
downloadpleroma-64b0120d678b106f33d5c903749fcac5ed5a1ed7.tar.gz
activitypub: add support for forwarding reports
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex22
1 files changed, 17 insertions, 5 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index 70db419ca..7d21fe65f 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -370,20 +370,32 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
content: content
} = params
) do
- additional = params[:additional] || %{}
-
# only accept false as false value
local = !(params[:local] == false)
+ forward = !(params[:forward] == false)
+
+ additional = params[:additional] || %{}
- %{
+ params = %{
actor: actor,
context: context,
account: account,
statuses: statuses,
content: content
}
- |> make_flag_data(additional)
- |> insert(local)
+
+ additional =
+ if forward do
+ Map.merge(additional, %{"to" => [], "cc" => [account.ap_id]})
+ else
+ additional
+ end
+
+ with flag_data <- make_flag_data(params, additional),
+ {:ok, activity} <- insert(flag_data, local),
+ :ok <- maybe_federate(activity) do
+ {:ok, activity}
+ end
end
def fetch_activities_for_context(context, opts \\ %{}) do