aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/user.ex
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2020-10-12 16:32:34 -0500
committerAlex Gleason <alex@alexgleason.me>2020-10-12 16:32:34 -0500
commit6ebec50df643325a524926858371d43f44e4c6da (patch)
tree15a304d1cfbb744260428b7ee46b633befde194d /lib/pleroma/user.ex
parent9ddc292ca82ae14754a4a2d71105832eddbb126e (diff)
downloadpleroma-6ebec50df643325a524926858371d43f44e4c6da.tar.gz
Refactor User.confirm/1, add more tests
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r--lib/pleroma/user.ex16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index b56620c54..4329fde12 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -1598,6 +1598,22 @@ defmodule Pleroma.User do
end
end
+ def confirm(users) when is_list(users) do
+ Repo.transaction(fn ->
+ Enum.map(users, fn user ->
+ with {:ok, user} <- confirm(user), do: user
+ end)
+ end)
+ end
+
+ def confirm(%User{} = user) do
+ with chg <- confirmation_changeset(user, need_confirmation: false),
+ {:ok, user} <- update_and_set_cache(chg) do
+ post_register_action(user)
+ {:ok, user}
+ end
+ end
+
def update_notification_settings(%User{} = user, settings) do
user
|> cast(%{notification_settings: settings}, [])