   plug :ensure_site_admin when action in [:create]
   ```
   """
+  @spec ensure_site_admin(Plug.Conn.t(), Map.t()) :: Plug.Conn.t() | no_return
+  def ensure_site_admin(conn, options)
+
   def ensure_site_admin(conn, _) do
     if conn.assigns[:current_user].site_admin do
       conn

  end

  @doc """
  A [function plug](https://hexdocs.pm/plug/readme.html#the-plug-conn-struct) used within a
  router or controller that verifies that there is a currently logged in user.

  ## Examples


  plug :ensure_authenticated_user when action in [:create]
  ```
  """
  @spec ensure_authenticated_user(Plug.Conn.t(), Map.t()) :: Plug.Conn.t() | no_return
  def ensure_authenticated_user(conn, options)

  def ensure_authenticated_user(conn, _) do
    case conn.assigns[:current_user] do
      nil -> raise(NotLoggedInError, conn: conn)
