summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAriadne Conill <ariadne@dereferenced.org>2019-11-03 09:05:12 -0600
committerlain <lain@soykaf.club>2019-11-04 16:25:05 +0100
commit6a151e7c7f90b0aea71580e613be4ddf5a4809f5 (patch)
tree722588a407516e7dbdbc63d2c9235360929c15eb /lib
parent5f844fd3f2b35075bd3a90c71315c321fec6a6e8 (diff)
downloadpleroma-6a151e7c7f90b0aea71580e613be4ddf5a4809f5.tar.gz
pleroma-6a151e7c7f90b0aea71580e613be4ddf5a4809f5.zip
streamer: use direct object for filter checks when there is no valid child object in an activity
We call Object.normalize/1 to get the child object for situations like Announce. However, the check is flawed and immediately fails if Object.normalize/1 fails. Instead, we should use the activity itself in those cases to allow activities which never have a child object to pass through the filter. Closes #1291
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/streamer/worker.ex2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/pleroma/web/streamer/worker.ex b/lib/pleroma/web/streamer/worker.ex
index 0ea224874..da7a5a6f2 100644
--- a/lib/pleroma/web/streamer/worker.ex
+++ b/lib/pleroma/web/streamer/worker.ex
@@ -136,7 +136,7 @@ defmodule Pleroma.Web.Streamer.Worker do
recipients = MapSet.new(item.recipients)
domain_blocks = Pleroma.Web.ActivityPub.MRF.subdomains_regex(user.info.domain_blocks)
- with parent when not is_nil(parent) <- Object.normalize(item),
+ with parent <- Object.normalize(item) || item,
true <- Enum.all?([blocks, mutes, reblog_mutes], &(item.actor not in &1)),
true <- Enum.all?([blocks, mutes], &(parent.data["actor"] not in &1)),
true <- MapSet.disjoint?(recipients, recipient_blocks),