aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2019-01-08 09:55:33 +0100
committerlain <lain@soykaf.club>2019-01-08 09:57:53 +0100
commit0fae04c4e3961baf1f31ae664e5a7fa5de19158e (patch)
treeb38ecfff2215b9d967d2c34d85db73e0aebaaa82 /lib
parent4e5b1560479df7dd553a2132186f9701e1d56871 (diff)
downloadpleroma-0fae04c4e3961baf1f31ae664e5a7fa5de19158e.tar.gz
Add a setting for users to autofollow on sign up.
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/user.ex19
1 files changed, 18 insertions, 1 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 85d0f9fce..8edf1c730 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -229,10 +229,27 @@ defmodule Pleroma.User do
end
end
+ defp autofollow_users(user) do
+ candidates = Pleroma.Config.get([:instance, :autofollowed_nicknames])
+
+ autofollowed_users =
+ from(u in User,
+ where: u.local == true,
+ where: u.nickname in ^candidates
+ )
+ |> Repo.all()
+
+ autofollowed_users
+ |> Enum.reduce({:ok, user}, fn other_user, {:ok, user} ->
+ follow(user, other_user)
+ end)
+ end
+
@doc "Inserts provided changeset, performs post-registration actions (confirmation email sending etc.)"
def register(%Ecto.Changeset{} = changeset) do
with {:ok, user} <- Repo.insert(changeset),
- {:ok, _} = try_send_confirmation_email(user) do
+ {:ok, _} <- try_send_confirmation_email(user),
+ {:ok, user} <- autofollow_users(user) do
{:ok, user}
end
end