- Create UserSettingsLive to replace UserSettingsController - Convert email/password forms to LiveView with proper form handling - Add mobile session management (toggle alerts, revoke devices) - Add require_sudo_mode on_mount hook to UserAuth - Create dedicated live_session for sudo mode routes in router - Keep UserSettingsController for email confirmation via token only - Add MobileSessions.get_session/1 function for test support - Update tests to match LiveView behavior (password update redirects to login) - Remove old controller tests for email/password updates (now in LiveView)
25 lines
803 B
Elixir
25 lines
803 B
Elixir
defmodule ToweropsWeb.UserSettingsController do
|
|
@moduledoc """
|
|
Controller for user settings operations that require traditional request/response handling.
|
|
|
|
Most user settings functionality is now handled by UserSettingsLive.
|
|
This controller only handles email confirmation via token.
|
|
"""
|
|
use ToweropsWeb, :controller
|
|
|
|
alias Towerops.Accounts
|
|
|
|
def confirm_email(conn, %{"token" => token}) do
|
|
case Accounts.update_user_email(conn.assigns.current_scope.user, token) do
|
|
{:ok, _user} ->
|
|
conn
|
|
|> put_flash(:info, "Email changed successfully.")
|
|
|> redirect(to: ~p"/users/settings")
|
|
|
|
{:error, _} ->
|
|
conn
|
|
|> put_flash(:error, "Email change link is invalid or it has expired.")
|
|
|> redirect(to: ~p"/users/settings")
|
|
end
|
|
end
|
|
end
|