defmodule Shift73kWeb.EnsureUserExistPlug do @moduledoc """ This plug ensures that there is at least one known User. """ import Plug.Conn import Phoenix.Controller alias Shift73k.Repo alias Shift73k.Accounts.User alias Shift73kWeb.Router.Helpers, as: Routes @doc false @spec init(any()) :: any() def init(config), do: config @doc false @spec call(Conn.t(), atom() | [atom()]) :: Conn.t() def call(conn, _opts) do # If there aren't even any users, if !Repo.exists?(User) do # We're just going to redirect to registration conn |> redirect(to: Routes.user_registration_path(conn, :new)) |> halt() else # Otherwise we proceed as normal conn end end end