aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2020-10-11 18:52:35 -0500
committerAlex Gleason <alex@alexgleason.me>2020-10-11 18:52:35 -0500
commitb2fed59209a92624884df38a477837cba9a8dbd9 (patch)
tree8f75bde09ab4cb01e5acd77d69118fb72259b5c7
parentbc3cf0fee0b93eb3cf8d2ba0f9a0dcc09b01331d (diff)
downloadpleroma-b2fed59209a92624884df38a477837cba9a8dbd9.tar.gz
Handle User.post_register_action/1 in steps
-rw-r--r--lib/pleroma/user.ex30
-rw-r--r--lib/pleroma/web/twitter_api/twitter_api_controller.ex3
2 files changed, 30 insertions, 3 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 09ea80793..3f40ac9b3 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -773,12 +773,37 @@ defmodule Pleroma.User do
end
def post_register_action(%User{} = user) do
+ instance_config =
+ Config.get(:instance)
+ |> Enum.into(%{})
+
+ do_post_register_action(user, instance_config)
+ end
+
+ defp do_post_register_action(%User{confirmation_pending: true} = user, %{
+ account_activation_required: true
+ }) do
+ with {:ok, _} <- try_send_confirmation_email(user) do
+ {:ok, user}
+ end
+ end
+
+ defp do_post_register_action(%User{approval_pending: true} = user, %{
+ account_approval_required: true
+ }) do
+ # TODO: Send approval explanation email
+ {:ok, user}
+ end
+
+ defp do_post_register_action(
+ %User{approval_pending: false, confirmation_pending: false} = user,
+ _instance_config
+ ) do
with {:ok, user} <- autofollow_users(user),
{:ok, user} <- set_cache(user),
{:ok, _} <- send_welcome_email(user),
{:ok, _} <- send_welcome_message(user),
- {:ok, _} <- send_welcome_chat_message(user),
- {:ok, _} <- try_send_confirmation_email(user) do
+ {:ok, _} <- send_welcome_chat_message(user) do
{:ok, user}
end
end
@@ -1570,6 +1595,7 @@ defmodule Pleroma.User do
def approve(%User{} = user) do
change(user, approval_pending: false)
|> update_and_set_cache()
+ |> post_register_action()
end
def update_notification_settings(%User{} = user, settings) do
diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex
index c2de26b0b..25dad547c 100644
--- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex
+++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex
@@ -34,7 +34,8 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
{:ok, _} <-
user
|> User.confirmation_changeset(need_confirmation: false)
- |> User.update_and_set_cache() do
+ |> User.update_and_set_cache()
+ |> User.post_register_action() do
redirect(conn, to: "/")
end
end