summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMark Felder <feld@feld.me>2021-02-04 15:16:50 -0600
committerMark Felder <feld@feld.me>2021-02-04 15:16:50 -0600
commite945ccc91bbc7c3479e842feb276c5efff30eed2 (patch)
treec72b7fb89e7575fb8c95b6c89255e28f585ef202 /lib
parent2956c21a55518f5f6f6648cc2d25f2b2114dc20f (diff)
Add a registration email that only sends if no other emails (welcome, approval, confirmation) are enabled
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/emails/user_email.ex14
-rw-r--r--lib/pleroma/user.ex18
2 files changed, 32 insertions, 0 deletions
diff --git a/lib/pleroma/emails/user_email.ex b/lib/pleroma/emails/user_email.ex
index 0c00069e2..a5233f373 100644
--- a/lib/pleroma/emails/user_email.ex
+++ b/lib/pleroma/emails/user_email.ex
@@ -106,6 +106,20 @@ defmodule Pleroma.Emails.UserEmail do
|> html_body(html_body)
end
+ def successful_registration_email(user) do
+ html_body = """
+ <h3>Hello @#{user.nickname}</h3>
+ <p>Your account at #{instance_name()} has been registered successfully.</p>
+ <p>No further action is required to activate your account.</p>
+ """
+
+ new()
+ |> to(recipient(user))
+ |> from(sender())
+ |> subject("Account registered on #{instance_name()}")
+ |> html_body(html_body)
+ end
+
@doc """
Email used in digest email notifications
Includes Mentions and New Followers data
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 7a7956c8f..1d7cb22b2 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -814,6 +814,7 @@ defmodule Pleroma.User do
with {:ok, user} <- autofollow_users(user),
{:ok, _} <- autofollowing_users(user),
{:ok, user} <- set_cache(user),
+ {:ok, _} <- maybe_send_registration_email(user),
{:ok, _} <- maybe_send_welcome_email(user),
{:ok, _} <- maybe_send_welcome_message(user),
{:ok, _} <- maybe_send_welcome_chat_message(user) do
@@ -892,6 +893,23 @@ defmodule Pleroma.User do
user
end
+ @spec maybe_send_registration_email(User.t()) :: {:ok, :enqueued | :noop}
+ defp maybe_send_registration_email(%User{email: email} = user) when is_binary(email) do
+ with false <- User.WelcomeEmail.enabled?(),
+ false <- Config.get([:instance, :account_activation_required], false),
+ false <- Config.get([:instance, :account_approval_required], false) do
+ user
+ |> Pleroma.Emails.UserEmail.successful_registration_email()
+
+ {:ok, :enqueued}
+ else
+ _ ->
+ {:ok, :noop}
+ end
+ end
+
+ defp maybe_send_registration_email(_), do: {:ok, :noop}
+
def needs_update?(%User{local: true}), do: false
def needs_update?(%User{local: false, last_refreshed_at: nil}), do: true