Add optional welcome message.

This commit is contained in:
lain 2019-02-16 16:42:34 +01:00
commit d812a347ca
5 changed files with 58 additions and 1 deletions

View file

@ -261,6 +261,7 @@ defmodule Pleroma.User do
def register(%Ecto.Changeset{} = changeset) do
with {:ok, user} <- Repo.insert(changeset),
{:ok, user} <- autofollow_users(user),
{:ok, _} <- Pleroma.User.WelcomeMessage.post_welcome_message_to_user(user),
{:ok, _} <- try_send_confirmation_email(user) do
{:ok, user}
end

View file

@ -0,0 +1,33 @@
defmodule Pleroma.User.WelcomeMessage do
alias Pleroma.User
alias Pleroma.Web.CommonAPI
import Ecto.Query
def post_welcome_message_to_user(user) do
with %User{} = sender_user <- welcome_user(),
message when is_binary(message) <- welcome_message() do
CommonAPI.post(sender_user, %{
"visibility" => "direct",
"status" => "@#{user.nickname}\n#{message}"
})
else
_ -> {:ok, nil}
end
end
defp welcome_user() do
if nickname = Pleroma.Config.get([:instance, :welcome_user_nickname]) do
from(u in User,
where: u.local == true,
where: u.nickname == ^nickname
)
|> Pleroma.Repo.one()
else
nil
end
end
defp welcome_message() do
Pleroma.Config.get([:instance, :welcome_message])
end
end