@@ -1020,7 +1020,7 @@ defmodule Pleroma.User do | |||||
do: Enum.member?(user.muted_notifications, ap_id) | do: Enum.member?(user.muted_notifications, ap_id) | ||||
def blocks?(%User{} = user, %User{} = target) do | def blocks?(%User{} = user, %User{} = target) do | ||||
blocks_ap_id?(user, target) || blocks_domain?(user, target) | |||||
blocks_ap_id?(user, target) || (!User.following?(user, target) && blocks_domain?(user, target)) | |||||
end | end | ||||
def blocks?(nil, _), do: false | def blocks?(nil, _), do: false | ||||
@@ -879,6 +879,16 @@ defmodule Pleroma.UserTest do | |||||
refute User.blocks?(user, collateral_user) | refute User.blocks?(user, collateral_user) | ||||
end | end | ||||
test "follows take precedence over domain blocks" do | |||||
user = insert(:user) | |||||
good_eggo = insert(:user, %{ap_id: "https://meanies.social/user/cuteposter"}) | |||||
{:ok, user} = User.block_domain(user, "meanies.social") | |||||
{:ok, user} = User.follow(user, good_eggo) | |||||
refute User.blocks?(user, good_eggo) | |||||
end | |||||
end | end | ||||
describe "blocks_import" do | describe "blocks_import" do | ||||