aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreal <eal@waifu.club>2017-11-20 01:21:53 +0200
committereal <eal@waifu.club>2017-11-20 07:50:56 +0200
commit4db5954786b60df84b833feb360fd8c81be956d9 (patch)
tree8de5730c2ab1e3bd89ae910b6712adf89dc4bc47
parentaadf54e0df39aa2c1bce2c9df076c91ca7fd8167 (diff)
downloadpleroma-4db5954786b60df84b833feb360fd8c81be956d9.tar.gz
Don't let the user unfollow their own account.
-rw-r--r--lib/pleroma/user.ex2
-rw-r--r--test/user_test.exs9
2 files changed, 10 insertions, 1 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index dde51bd30..59d4fb839 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -167,7 +167,7 @@ defmodule Pleroma.User do
def unfollow(%User{} = follower, %User{} = followed) do
ap_followers = followed.follower_address
- if following?(follower, followed) do
+ if following?(follower, followed) and follower.ap_id != followed.ap_id do
following = follower.following
|> List.delete(ap_followers)
diff --git a/test/user_test.exs b/test/user_test.exs
index 430f56846..e9f7a8666 100644
--- a/test/user_test.exs
+++ b/test/user_test.exs
@@ -66,6 +66,15 @@ defmodule Pleroma.UserTest do
assert user.following == []
end
+ test "unfollow doesn't unfollow yourself" do
+ user = insert(:user)
+
+ {:error, _} = User.unfollow(user, user)
+
+ assert user.following == [user.ap_id]
+ end
+
+
test "test if a user is following another user" do
followed = insert(:user)
user = insert(:user, %{following: [User.ap_followers(followed)]})