diff options
author | lain <lain@soykaf.club> | 2022-12-15 23:07:49 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2022-12-15 23:07:49 +0000 |
commit | c0cfc454ba7ecaa5cc729c7916b72226df2e87ff (patch) | |
tree | 5257522288933c4f250712b560a57d6f4f8d26ed | |
parent | 204fd6faae8c39706a5ded42c7cc4fbc71a733bc (diff) | |
parent | 62c27e016441d8f0649fea0ea9cfe0646e2b6f11 (diff) | |
download | pleroma-c0cfc454ba7ecaa5cc729c7916b72226df2e87ff.tar.gz pleroma-c0cfc454ba7ecaa5cc729c7916b72226df2e87ff.zip |
Merge branch 'from/upstream-develop/tusooa/register-approval' into 'develop'
Fix failure when registering a user with no email when approval required
Closes #3021
See merge request pleroma/pleroma!3807
-rw-r--r-- | lib/pleroma/user.ex | 6 | ||||
-rw-r--r-- | test/pleroma/user_test.exs | 15 |
2 files changed, 20 insertions, 1 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index b422e5c1d..d2ae08888 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -905,7 +905,7 @@ defmodule Pleroma.User do end end - defp send_user_approval_email(user) do + defp send_user_approval_email(%User{email: email} = user) when is_binary(email) do user |> Pleroma.Emails.UserEmail.approval_pending_email() |> Pleroma.Emails.Mailer.deliver_async() @@ -913,6 +913,10 @@ defmodule Pleroma.User do {:ok, :enqueued} end + defp send_user_approval_email(_user) do + {:ok, :skipped} + end + defp send_admin_approval_emails(user) do all_superusers() |> Enum.filter(fn user -> not is_nil(user.email) end) diff --git a/test/pleroma/user_test.exs b/test/pleroma/user_test.exs index 303598fad..a58c8f68b 100644 --- a/test/pleroma/user_test.exs +++ b/test/pleroma/user_test.exs @@ -591,6 +591,21 @@ defmodule Pleroma.UserTest do refute_email_sent() end + test "it works when the registering user does not provide an email" do + clear_config([Pleroma.Emails.Mailer, :enabled], false) + clear_config([:instance, :account_activation_required], false) + clear_config([:instance, :account_approval_required], true) + + cng = User.register_changeset(%User{}, @full_user_data |> Map.put(:email, "")) + + # The user is still created + assert {:ok, %User{nickname: "nick"}} = User.register(cng) + + # No emails are sent + ObanHelpers.perform_all() + refute_email_sent() + end + test "it requires an email, name, nickname and password, bio is optional when account_activation_required is enabled" do clear_config([:instance, :account_activation_required], true) |