Add optional welcome message.
This commit is contained in:
parent
1ce1b7b58d
commit
d812a347ca
5 changed files with 58 additions and 1 deletions
|
|
@ -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
|
||||
|
|
|
|||
33
lib/pleroma/user/welcome_message.ex
Normal file
33
lib/pleroma/user/welcome_message.ex
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue