defmodule PhilomenaWeb.NotAuthorizedPlug do
  alias Phoenix.Controller
  alias Plug.Conn

  def init([]), do: []

  def call(conn), do: call(conn, nil)

  def call(conn, _opts) do
    case conn.assigns.ajax? do
      true ->
        conn
        |> Conn.resp(:forbidden, "You can't access that page.")
        |> Conn.halt()

      _false ->
        conn
        |> Controller.fetch_flash()
        |> Controller.put_flash(:error, "You can't access that page.")
        |> Controller.redirect(to: "/")
        |> Conn.halt()
    end
  end
end