ash_hq/lib/ash_hq_web/controllers/user_settings_controller.ex

21 lines
646 B
Elixir
Raw Normal View History

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