analytics/lib/plausible_web/plugs/first_launch_plug.ex

27 lines
537 B
Elixir
Raw Normal View History

defmodule PlausibleWeb.FirstLaunchPlug do
@moduledoc """
Redirects first-launch users to registration page.
"""
@behaviour Plug
alias Plausible.Release
@impl true
def init(opts) do
_path = Keyword.fetch!(opts, :redirect_to)
end
@impl true
def call(%Plug.Conn{request_path: path} = conn, path), do: conn
def call(conn, redirect_to) do
if Release.should_be_first_launch?() do
conn
|> Phoenix.Controller.redirect(to: redirect_to)
|> Plug.Conn.halt()
else
conn
end
end
end