defmodule PhilomenaWeb.HaltTotp.Phoenix.ControllerCallbacks do use Pow.Extension.Phoenix.ControllerCallbacks.Base alias Pow.Plug import Phoenix.Controller def before_respond(Pow.Phoenix.SessionController, :create, {:ok, conn}, _config) do conn |> Plug.current_user() |> halt_totp(conn) end defp halt_totp(%{otp_required_for_login: true}, conn) do {:ok, conn} = Plug.clear_authenticated_user(conn) conn = conn |> put_flash(:error, "Cannot yet authenticate accounts with TOTP enabled") |> redirect(to: "/") {:halt, conn} end defp halt_totp(_, conn) do {:ok, conn} end def before_process(Pow.Phoenix.RegistrationController, _method, conn, _config) do conn = conn |> put_flash(:error, "Registrations are disabled") |> redirect(to: "/") {:halt, conn} end end