summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2019-05-22 04:33:10 +0000
committerWilliam Pitcock <nenolod@dereferenced.org>2019-05-22 18:53:12 +0000
commit60f882b09f5f837546d59f8eef56b905e065ec60 (patch)
tree6bff28e61d10cbf74934206b651e4b5b4a945f44
parent75b6c4b00433560fb5ee502f13e8261b4b8a246a (diff)
downloadpleroma-60f882b09f5f837546d59f8eef56b905e065ec60.tar.gz
pleroma-60f882b09f5f837546d59f8eef56b905e065ec60.zip
activitypub: run user objects through MRF filters
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex16
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index 3d9679ec0..aa0229db7 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -909,7 +909,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
end
end
- def user_data_from_user_object(data) do
+ defp object_to_user_data(data) do
avatar =
data["icon"]["url"] &&
%{
@@ -956,9 +956,19 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
{:ok, user_data}
end
+ def user_data_from_user_object(data) do
+ with {:ok, data} <- MRF.filter(data),
+ {:ok, data} <- object_to_user_data(data) do
+ {:ok, data}
+ else
+ e -> {:error, e}
+ end
+ end
+
def fetch_and_prepare_user_from_ap_id(ap_id) do
- with {:ok, data} <- Fetcher.fetch_and_contain_remote_object_from_id(ap_id) do
- user_data_from_user_object(data)
+ with {:ok, data} <- Fetcher.fetch_and_contain_remote_object_from_id(ap_id),
+ {:ok, data} <- user_data_from_user_object(data) do
+ {:ok, data}
else
e -> Logger.error("Could not decode user at fetch #{ap_id}, #{inspect(e)}")
end