diff options
author | lain <lain@soykaf.club> | 2019-01-08 09:55:33 +0100 |
---|---|---|
committer | lain <lain@soykaf.club> | 2019-01-08 09:57:53 +0100 |
commit | 0fae04c4e3961baf1f31ae664e5a7fa5de19158e (patch) | |
tree | b38ecfff2215b9d967d2c34d85db73e0aebaaa82 /lib | |
parent | 4e5b1560479df7dd553a2132186f9701e1d56871 (diff) | |
download | pleroma-0fae04c4e3961baf1f31ae664e5a7fa5de19158e.tar.gz |
Add a setting for users to autofollow on sign up.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/user.ex | 19 |
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 |