aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma
diff options
context:
space:
mode:
authorMark Felder <feld@feld.me>2020-10-16 17:32:05 +0000
committerMark Felder <feld@feld.me>2020-10-16 17:36:02 +0000
commit1b8fd7e65af980c42b72f584c2a957b12ca5c78b (patch)
treefbf70265a6aefe04e8c7c8fe50c36c22d2b9760b /lib/pleroma
parent023f726d7f497705d766adee8874b94efb08a0aa (diff)
downloadpleroma-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')
-rw-r--r--lib/pleroma/user.ex11
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),