logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: b2fed59209a92624884df38a477837cba9a8dbd9
parent bc3cf0fee0b93eb3cf8d2ba0f9a0dcc09b01331d
Author: Alex Gleason <alex@alexgleason.me>
Date:   Sun, 11 Oct 2020 18:52:35 -0500

Handle User.post_register_action/1 in steps

Diffstat:

Mlib/pleroma/user.ex30++++++++++++++++++++++++++++--
Mlib/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 @@ -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 @@ -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