From f3aa1d29bc4551b8bc8e7004b83cf1ba77e99af0 Mon Sep 17 00:00:00 2001 From: kPherox Date: Wed, 4 Sep 2024 16:14:19 +0900 Subject: [PATCH 1/5] fix: left join for check blocked --- lib/pleroma/web/activity_pub/activity_pub.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index a2a94a0ff4..c2e72e4405 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -1076,7 +1076,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do following_ap_ids = User.get_friends_ap_ids(user) query = - if has_named_binding?(query, :object), do: query, else: Activity.with_joined_object(query) + if has_named_binding?(query, :object), do: query, else: Activity.with_joined_object(query, :left) from( [activity, object: o] in query, From 3b00d96ba45341ad6438fadc379c95fa6b2e68a3 Mon Sep 17 00:00:00 2001 From: kPherox Date: Wed, 4 Sep 2024 16:38:29 +0900 Subject: [PATCH 2/5] fix: nil reading_user skip restrict_blocked --- lib/pleroma/web/activity_pub/activity_pub.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index c2e72e4405..93504bc35c 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -690,7 +690,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do |> Map.put(:pinned_object_ids, Map.keys(user.pinned_objects)) params = - if User.blocks?(reading_user, user) do + if is_nil(reading_user) || User.blocks?(reading_user, user) do params else params From c52a35689fec22527dbcf032d8563f5c4eb1d0f5 Mon Sep 17 00:00:00 2001 From: kPherox Date: Wed, 4 Sep 2024 17:10:32 +0900 Subject: [PATCH 3/5] fixup! fix: left join for check blocked --- lib/pleroma/web/activity_pub/activity_pub.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 93504bc35c..db25d36299 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -1319,7 +1319,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do defp maybe_preload_objects(query, _) do query - |> Activity.with_preloaded_object() + |> Activity.with_preloaded_object(:left) end defp maybe_preload_bookmarks(query, %{skip_preload: true}), do: query From 2818f944fb03e3cc3e09dd607a7b0a7e4dfc1b4c Mon Sep 17 00:00:00 2001 From: kPherox Date: Wed, 4 Sep 2024 17:21:15 +0900 Subject: [PATCH 4/5] fixup! fix: nil reading_user skip restrict_blocked --- lib/pleroma/web/activity_pub/activity_pub.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index db25d36299..bfaffa7a8e 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -690,7 +690,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do |> Map.put(:pinned_object_ids, Map.keys(user.pinned_objects)) params = - if is_nil(reading_user) || User.blocks?(reading_user, user) do + if User.blocks?(reading_user, user) do params else params From 3f3df471f4e6f880756d78e575e145f72708cd0f Mon Sep 17 00:00:00 2001 From: kPherox Date: Wed, 4 Sep 2024 17:34:47 +0900 Subject: [PATCH 5/5] fix: through object is null --- lib/pleroma/web/activity_pub/activity_pub.ex | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index bfaffa7a8e..26807a163e 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -1125,11 +1125,12 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do # Same as above, but checks the Object where: fragment( - "(not (split_part(?->>'actor', '/', 3) = ANY(?))) or (?->>'actor') = ANY(?)", + "(not (split_part(?->>'actor', '/', 3) = ANY(?))) or (?->>'actor') = ANY(?) or ? is null", o.data, ^domain_blocks, o.data, - ^following_ap_ids + ^following_ap_ids, + o ) ) end