diff options
author | Lain Iwakura <lain@soykaf.club> | 2017-12-07 17:51:55 +0100 |
---|---|---|
committer | Lain Iwakura <lain@soykaf.club> | 2017-12-07 17:51:55 +0100 |
commit | a78ae2a685769cbf7459eb347aca581d389018ad (patch) | |
tree | acdeeabb37fa71b70b64ac9b42ab86667eac0886 | |
parent | b727ecc5e75388e2b2d67c76cab6df1a7e6719b3 (diff) | |
download | pleroma-a78ae2a685769cbf7459eb347aca581d389018ad.tar.gz |
Don't follow deactivated users.
-rw-r--r-- | lib/pleroma/user.ex | 4 | ||||
-rw-r--r-- | test/user_test.exs | 7 |
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 779a89a12..b21caba9d 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -142,9 +142,9 @@ defmodule Pleroma.User do end end - def follow(%User{} = follower, %User{} = followed) do + def follow(%User{} = follower, %User{info: info} = followed) do ap_followers = followed.follower_address - if following?(follower, followed) do + if following?(follower, followed) or info["deactivated"] do {:error, "Could not follow user: #{followed.nickname} is already on your list."} else diff --git a/test/user_test.exs b/test/user_test.exs index 6daf1ecb7..486998907 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -39,6 +39,13 @@ defmodule Pleroma.UserTest do assert User.ap_followers(followed) in user.following end + test "can't follow a deactivated users" do + user = insert(:user) + followed = insert(:user, info: %{"deactivated" => true}) + + {:error, _} = User.follow(user, followed) + end + test "following a remote user will ensure a websub subscription is present" do user = insert(:user) {:ok, followed} = OStatus.make_user("shp@social.heldscal.la") |