aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorlambda <pleromagit@rogerbraun.net>2018-05-25 07:15:01 +0000
committerlambda <pleromagit@rogerbraun.net>2018-05-25 07:15:01 +0000
commit5d6d86bf00fa533d505ffe5fc3df6c3eadae5739 (patch)
tree1ba696846331a65a706b78740a0e8a07a0838ab6 /lib
parentcaae83e6d54caaac1790a727b902e70adffd296f (diff)
parent1d88abf2d4834a6dac95c655b9d27cf50377010a (diff)
downloadpleroma-5d6d86bf00fa533d505ffe5fc3df6c3eadae5739.tar.gz
Merge branch 'feature/blocks-deny-refollow' into 'develop'
activitypub conformance: deny refollow for blocks See merge request pleroma/pleroma!170
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/user.ex35
1 files changed, 20 insertions, 15 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 690cc7cf3..508f14584 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -170,25 +170,30 @@ defmodule Pleroma.User do
def follow(%User{} = follower, %User{info: info} = followed) do
ap_followers = followed.follower_address
- if following?(follower, followed) or info["deactivated"] do
- {:error, "Could not follow user: #{followed.nickname} is already on your list."}
- else
- if !followed.local && follower.local && !ap_enabled?(followed) do
- Websub.subscribe(follower, followed)
- end
+ cond do
+ following?(follower, followed) or info["deactivated"] ->
+ {:error, "Could not follow user: #{followed.nickname} is already on your list."}
- following =
- [ap_followers | follower.following]
- |> Enum.uniq()
+ blocks?(followed, follower) ->
+ {:error, "Could not follow user: #{followed.nickname} blocked you."}
- follower =
- follower
- |> follow_changeset(%{following: following})
- |> update_and_set_cache
+ true ->
+ if !followed.local && follower.local && !ap_enabled?(followed) do
+ Websub.subscribe(follower, followed)
+ end
+
+ following =
+ [ap_followers | follower.following]
+ |> Enum.uniq()
- {:ok, _} = update_follower_count(followed)
+ follower =
+ follower
+ |> follow_changeset(%{following: following})
+ |> update_and_set_cache
- follower
+ {:ok, _} = update_follower_count(followed)
+
+ follower
end
end