diff options
author | Alex Gleason <alex@alexgleason.me> | 2020-10-12 16:32:34 -0500 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2020-10-12 16:32:34 -0500 |
commit | 6ebec50df643325a524926858371d43f44e4c6da (patch) | |
tree | 15a304d1cfbb744260428b7ee46b633befde194d /lib | |
parent | 9ddc292ca82ae14754a4a2d71105832eddbb126e (diff) | |
download | pleroma-6ebec50df643325a524926858371d43f44e4c6da.tar.gz pleroma-6ebec50df643325a524926858371d43f44e4c6da.zip |
Refactor User.confirm/1, add more tests
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/user.ex | 16 | ||||
-rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api_controller.ex | 6 |
2 files changed, 17 insertions, 5 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}, []) diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex index 6961118ca..b12606472 100644 --- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex +++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex @@ -31,11 +31,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do def confirm_email(conn, %{"user_id" => uid, "token" => token}) do with %User{} = user <- User.get_cached_by_id(uid), true <- user.local and user.confirmation_pending and user.confirmation_token == token, - {:ok, _} <- - user - |> User.confirmation_changeset(need_confirmation: false) - |> User.update_and_set_cache() do - User.post_register_action(user) + {:ok, _} <- User.confirm(user) do redirect(conn, to: "/") end end |