diff options
author | rinpatch <rinpatch@sdf.org> | 2019-01-08 22:58:19 +0000 |
---|---|---|
committer | rinpatch <rinpatch@sdf.org> | 2019-01-08 22:58:19 +0000 |
commit | 3aee8bb67bd3f78ad4e638ea056bbd7b3ff4b7e7 (patch) | |
tree | b38ecfff2215b9d967d2c34d85db73e0aebaaa82 /lib | |
parent | 4e5b1560479df7dd553a2132186f9701e1d56871 (diff) | |
parent | 0fae04c4e3961baf1f31ae664e5a7fa5de19158e (diff) | |
download | pleroma-3aee8bb67bd3f78ad4e638ea056bbd7b3ff4b7e7.tar.gz |
Merge branch 'autofollow' into 'develop'
Add a setting for users to autofollow on sign up.
See merge request pleroma/pleroma!639
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 |