Browse Source

clear follow requests when blocking a user

tags/v1.1.4
Sadposter 4 years ago
parent
commit
94e336d9d5
2 changed files with 19 additions and 0 deletions
  1. +8
    -0
      lib/pleroma/user.ex
  2. +11
    -0
      test/user_test.exs

+ 8
- 0
lib/pleroma/user.ex View File

@@ -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)


+ 11
- 0
test/user_test.exs View File

@@ -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)

Pleroma.Web.TwitterAPI.TwitterAPI.follow(follower, %{"user_id" => followed.id})
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)


Loading…
Cancel
Save