diff options
author | Alex Gleason <alex@alexgleason.me> | 2020-10-12 16:42:59 -0500 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2020-10-12 16:42:59 -0500 |
commit | cb29769a224104882ed7572087f8cd2db48475ef (patch) | |
tree | b6eeeca704e1e12e11868ac8169bd1e256f01987 /lib | |
parent | 6ebec50df643325a524926858371d43f44e4c6da (diff) | |
download | pleroma-cb29769a224104882ed7572087f8cd2db48475ef.tar.gz pleroma-cb29769a224104882ed7572087f8cd2db48475ef.zip |
Make User.confirm/1 and User.approve/1 idempotent
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/user.ex | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 4329fde12..c6767cfca 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -1590,7 +1590,7 @@ defmodule Pleroma.User do end) end - def approve(%User{} = user) do + def approve(%User{approval_pending: true} = user) do with chg <- change(user, approval_pending: false), {:ok, user} <- update_and_set_cache(chg) do post_register_action(user) @@ -1598,6 +1598,8 @@ defmodule Pleroma.User do end end + def approve(%User{} = user), do: {:ok, user} + def confirm(users) when is_list(users) do Repo.transaction(fn -> Enum.map(users, fn user -> @@ -1606,7 +1608,7 @@ defmodule Pleroma.User do end) end - def confirm(%User{} = user) do + def confirm(%User{confirmation_pending: true} = user) do with chg <- confirmation_changeset(user, need_confirmation: false), {:ok, user} <- update_and_set_cache(chg) do post_register_action(user) @@ -1614,6 +1616,8 @@ defmodule Pleroma.User do end end + def confirm(%User{} = user), do: {:ok, user} + def update_notification_settings(%User{} = user, settings) do user |> cast(%{notification_settings: settings}, []) |