diff options
| author | rinpatch <rinpatch@sdf.org> | 2019-02-16 17:39:04 +0000 | 
|---|---|---|
| committer | rinpatch <rinpatch@sdf.org> | 2019-02-16 17:39:04 +0000 | 
| commit | 3b141194715e362d65482672d00b10991d102fa2 (patch) | |
| tree | 6ebdd6b8af5a1207ce80d20b8ae61c5f836c2896 /lib | |
| parent | 1ce1b7b58dc0e009635c9dd6e2571df56c04f356 (diff) | |
| parent | 27375e55757a7034aa2ad6c94a8d6c82b1128b34 (diff) | |
| download | pleroma-3b141194715e362d65482672d00b10991d102fa2.tar.gz pleroma-3b141194715e362d65482672d00b10991d102fa2.zip  | |
Merge branch 'welcome-message' into 'develop'
Add optional welcome message.
See merge request pleroma/pleroma!832
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/user.ex | 1 | ||||
| -rw-r--r-- | lib/pleroma/user/welcome_message.ex | 30 | 
2 files changed, 31 insertions, 0 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 29d2b3d89..3c6a9953d 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -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 diff --git a/lib/pleroma/user/welcome_message.ex b/lib/pleroma/user/welcome_message.ex new file mode 100644 index 000000000..8018ac22f --- /dev/null +++ b/lib/pleroma/user/welcome_message.ex @@ -0,0 +1,30 @@ +defmodule Pleroma.User.WelcomeMessage do +  alias Pleroma.User +  alias Pleroma.Web.CommonAPI + +  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 +    with nickname when is_binary(nickname) <- +           Pleroma.Config.get([:instance, :welcome_user_nickname]), +         %User{local: true} = user <- User.get_cached_by_nickname(nickname) do +      user +    else +      _ -> nil +    end +  end + +  defp welcome_message() do +    Pleroma.Config.get([:instance, :welcome_message]) +  end +end  | 
