|
|
|
@ -850,7 +850,10 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|
|
|
|
|
|
|
|
|
|
from(
|
|
|
|
|
[activity, object: o] in query,
|
|
|
|
|
# You don't block the author
|
|
|
|
|
where: fragment("not (? = ANY(?))", activity.actor, ^blocked_ap_ids),
|
|
|
|
|
|
|
|
|
|
# You don't block any recipients, and didn't author the post
|
|
|
|
|
where:
|
|
|
|
|
fragment(
|
|
|
|
|
"((not (? && ?)) or ? = ?)",
|
|
|
|
@ -859,12 +862,18 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|
|
|
|
|
activity.actor,
|
|
|
|
|
^user.ap_id
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
# You don't block the domain of any recipients, and didn't author the post
|
|
|
|
|
where:
|
|
|
|
|
fragment(
|
|
|
|
|
"recipients_contain_blocked_domains(?, ?) = false",
|
|
|
|
|
"(recipients_contain_blocked_domains(?, ?) = false) or ? = ?",
|
|
|
|
|
activity.recipients,
|
|
|
|
|
^domain_blocks
|
|
|
|
|
^domain_blocks,
|
|
|
|
|
activity.actor,
|
|
|
|
|
^user.ap_id
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
# It's not a boost of a user you block
|
|
|
|
|
where:
|
|
|
|
|
fragment(
|
|
|
|
|
"not (?->>'type' = 'Announce' and ?->'to' \\?| ?)",
|
|
|
|
@ -872,6 +881,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|
|
|
|
|
activity.data,
|
|
|
|
|
^blocked_ap_ids
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
# You don't block the author's domain, and also don't follow the author
|
|
|
|
|
where:
|
|
|
|
|
fragment(
|
|
|
|
|
"(not (split_part(?, '/', 3) = ANY(?))) or ? = ANY(?)",
|
|
|
|
@ -880,6 +891,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|
|
|
|
|
activity.actor,
|
|
|
|
|
^following_ap_ids
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
# Same as above, but checks the Object
|
|
|
|
|
where:
|
|
|
|
|
fragment(
|
|
|
|
|
"(not (split_part(?->>'actor', '/', 3) = ANY(?))) or (?->>'actor') = ANY(?)",
|
|
|
|
|