aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkaniini <ariadne@dereferenced.org>2019-08-18 21:59:22 +0000
committerkaniini <ariadne@dereferenced.org>2019-08-18 21:59:22 +0000
commit475fcb3e6c763ea35f755b74a8bdcdf9d90de8ab (patch)
tree6173c54ca5bd74e75e0437c178dd886d09e4f914
parent18c8c8d1761e49b442ceef425f5de44166266d4e (diff)
parent58c1391c4dd7e916b54e49b0b17ea1f01cac02f3 (diff)
downloadpleroma-475fcb3e6c763ea35f755b74a8bdcdf9d90de8ab.tar.gz
Merge branch 'fix/bugfix-blocked-user-follow-reqs' into 'develop'
Clear follow requests when blocking a user See merge request pleroma/pleroma!1583
-rw-r--r--lib/pleroma/user.ex8
-rw-r--r--test/user_test.exs11
2 files changed, 19 insertions, 0 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 5c3c8a8a2..829de6e31 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -21,6 +21,7 @@ defmodule Pleroma.User do
alias Pleroma.Web
alias Pleroma.Web.ActivityPub.ActivityPub
alias Pleroma.Web.ActivityPub.Utils
+ alias Pleroma.Web.CommonAPI
alias Pleroma.Web.CommonAPI.Utils, as: CommonUtils
alias Pleroma.Web.OAuth
alias Pleroma.Web.OStatus
@@ -914,6 +915,13 @@ defmodule Pleroma.User do
blocker
end
+ # clear any requested follows as well
+ blocked =
+ case CommonAPI.reject_follow_request(blocked, blocker) do
+ {:ok, %User{} = updated_blocked} -> updated_blocked
+ nil -> blocked
+ end
+
blocker =
if subscribed_to?(blocked, blocker) do
{:ok, blocker} = unsubscribe(blocked, blocker)
diff --git a/test/user_test.exs b/test/user_test.exs
index b363b322c..96f2a252d 100644
--- a/test/user_test.exs
+++ b/test/user_test.exs
@@ -90,6 +90,17 @@ defmodule Pleroma.UserTest do
assert activity
end
+ test "clears follow requests when requester is blocked" do
+ followed = insert(:user, %{info: %{locked: true}})
+ follower = insert(:user)
+
+ CommonAPI.follow(follower, followed)
+ assert {:ok, [_activity]} = User.get_follow_requests(followed)
+
+ {:ok, _follower} = User.block(followed, follower)
+ assert {:ok, []} = User.get_follow_requests(followed)
+ end
+
test "follow_all follows mutliple users" do
user = insert(:user)
followed_zero = insert(:user)