ash_hq/lib/ash_hq_web/controllers/user_settings_controller.ex
Zach Daniel 884de2d2d2 improvement: rework auth forms to liveview
improvement: better look and feel (not much better, though)
2022-08-15 21:23:59 -04:00

20 lines
646 B
Elixir

defmodule AshHqWeb.UserSettingsController do
use AshHqWeb, :controller
def confirm_email(conn, %{"token" => token}) do
conn.assigns.current_user
|> Ash.Changeset.for_update(:change_email, %{token: token}, authorize?: false)
|> AshHq.Accounts.update()
|> case do
{:ok, _} ->
conn
|> put_flash(:info, "Email changed successfully.")
|> redirect(to: Routes.app_view_path(conn, :user_settings))
{:error, _form} ->
conn
|> put_flash(:error, "Email change link is invalid or it has expired.")
|> redirect(to: Routes.app_view_path(conn, :user_settings))
end
end
end