diff options
author | Mark Felder <feld@feld.me> | 2020-10-16 17:32:05 +0000 |
---|---|---|
committer | Mark Felder <feld@feld.me> | 2020-10-16 17:36:02 +0000 |
commit | 1b8fd7e65af980c42b72f584c2a957b12ca5c78b (patch) | |
tree | fbf70265a6aefe04e8c7c8fe50c36c22d2b9760b /lib/pleroma/user.ex | |
parent | 023f726d7f497705d766adee8874b94efb08a0aa (diff) | |
download | pleroma-1b8fd7e65af980c42b72f584c2a957b12ca5c78b.tar.gz |
Adds feature to permit e.g., local admins and community moderators to automatically follow all newly registered accounts
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r-- | lib/pleroma/user.ex | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index dc41d0001..2a3495103 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -765,6 +765,16 @@ defmodule Pleroma.User do follow_all(user, autofollowed_users) end + defp autofollowing_users(user) do + candidates = Config.get([:instance, :autofollowing_nicknames]) + + User.Query.build(%{nickname: candidates, local: true, deactivated: false}) + |> Repo.all() + |> Enum.each(&follow(&1, user, :follow_accept)) + + {:ok, :success} + 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) do @@ -774,6 +784,7 @@ defmodule Pleroma.User do def post_register_action(%User{} = user) do with {:ok, user} <- autofollow_users(user), + {:ok, _} <- autofollowing_users(user), {:ok, user} <- set_cache(user), {:ok, _} <- send_welcome_email(user), {:ok, _} <- send_welcome_message(user), |