diff options
author | kaniini <nenolod@gmail.com> | 2018-10-11 10:56:12 +0000 |
---|---|---|
committer | kaniini <nenolod@gmail.com> | 2018-10-11 10:56:12 +0000 |
commit | 117e005409c75c2d53df88fa19211823bdf3d61e (patch) | |
tree | 73a4ef5e0215fa3c10779adddc517911d270e0ba /lib | |
parent | 3a77336d8999bed45518420c9f8b47d89dcf1f4d (diff) | |
parent | 51eaece3ea68226f1780e37e46f25e74f3392782 (diff) | |
download | pleroma-117e005409c75c2d53df88fa19211823bdf3d61e.tar.gz |
Merge branch 'security/fix-local-locked-accounts' into 'develop'
security: fix local locked accounts
Closes #316
See merge request pleroma/pleroma!372
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/user.ex | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 02f13eb2c..db6f96daa 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -184,7 +184,15 @@ defmodule Pleroma.User do def needs_update?(_), do: true - def maybe_direct_follow(%User{} = follower, %User{info: info} = followed) do + def maybe_direct_follow(%User{} = follower, %User{local: true, info: %{"locked" => true}}) do + {:ok, follower} + end + + def maybe_direct_follow(%User{} = follower, %User{local: true} = followed) do + follow(follower, followed) + end + + def maybe_direct_follow(%User{} = follower, %User{} = followed) do if !User.ap_enabled?(followed) do follow(follower, followed) else @@ -728,6 +736,7 @@ defmodule Pleroma.User do Repo.insert(cs, on_conflict: :replace_all, conflict_target: :nickname) end + def ap_enabled?(%User{local: true}), do: true def ap_enabled?(%User{info: info}), do: info["ap_enabled"] def ap_enabled?(_), do: false |