diff options
author | Tusooa Zhu <tusooa@kazv.moe> | 2021-09-12 21:52:44 -0400 |
---|---|---|
committer | Tusooa Zhu <tusooa@kazv.moe> | 2021-12-28 01:11:08 -0500 |
commit | 4f44fd32eae100d5ce74b3c9bd5457858f145198 (patch) | |
tree | 5a62b884d36a39f59212f7b7022b8d947d8f215e /lib | |
parent | e41eee5ed1c4e7001a28dababe046e28357d2ffd (diff) | |
download | pleroma-4f44fd32eae100d5ce74b3c9bd5457858f145198.tar.gz pleroma-4f44fd32eae100d5ce74b3c9bd5457858f145198.zip |
Federate unfollow activity in move_following properly
0: Use the CommonAPI unfollow function to make sure the
unfollow activity is federated.
1: Limit the follow and unfollow to local followers only,
while let the romote servers decide whether to move their followers.
Ref: emit-move
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/following_relationship.ex | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/pleroma/following_relationship.ex b/lib/pleroma/following_relationship.ex index a0c7e6e39..61d36ce93 100644 --- a/lib/pleroma/following_relationship.ex +++ b/lib/pleroma/following_relationship.ex @@ -194,11 +194,12 @@ defmodule Pleroma.FollowingRelationship do |> join(:inner, [r], f in assoc(r, :follower)) |> where(following_id: ^origin.id) |> where([r, f], f.allow_following_move == true) + |> where([r, f], f.local == true) |> limit(50) |> preload([:follower]) |> Repo.all() |> Enum.map(fn following_relationship -> - Repo.delete(following_relationship) + Pleroma.Web.CommonAPI.unfollow(following_relationship.follower, origin) Pleroma.Web.CommonAPI.follow(following_relationship.follower, target) end) |> case do |