User: Don't unfollow on block when the relevant setting is set.

This commit is contained in:
lain 2020-06-26 12:06:00 +02:00
commit 15a8b70318
4 changed files with 18 additions and 20 deletions

View file

@ -1309,7 +1309,8 @@ defmodule Pleroma.User do
unsubscribe(blocked, blocker)
if following?(blocked, blocker), do: unfollow(blocked, blocker)
unfollowing_blocked = Config.get([:activitypub, :unfollow_blocked], true)
if unfollowing_blocked && following?(blocked, blocker), do: unfollow(blocked, blocker)
{:ok, blocker} = update_follower_count(blocker)
{:ok, blocker, _} = Participation.mark_all_as_read(blocker, blocked)

View file

@ -6,7 +6,6 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.BlockValidator do
use Ecto.Schema
alias Pleroma.EctoType.ActivityPub.ObjectValidators
alias Pleroma.User
import Ecto.Changeset
import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations
@ -33,7 +32,6 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.BlockValidator do
|> validate_inclusion(:type, ["Block"])
|> validate_actor_presence()
|> validate_actor_presence(field_name: :object)
|> validate_block_acceptance()
end
def cast_and_validate(data) do
@ -41,15 +39,4 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.BlockValidator do
|> cast_data
|> validate_data
end
def validate_block_acceptance(cng) do
actor = get_field(cng, :actor) |> User.get_cached_by_ap_id()
if actor.local || Pleroma.Config.get([:activitypub, :unfollow_blocked], true) do
cng
else
cng
|> add_error(:actor, "Not accepting remote blocks")
end
end
end