19 lines
392 B
Elixir
19 lines
392 B
Elixir
defmodule ShootingEventPhxWeb.Plugs.AdminOnly do
|
|
@moduledoc false
|
|
import Plug.Conn
|
|
alias ShootingEventPhx.Auth
|
|
|
|
def init(opts), do: opts
|
|
|
|
def call(conn, _opts) do
|
|
if Auth.admin_request?(conn) do
|
|
conn
|
|
else
|
|
conn
|
|
|> put_status(:unauthorized)
|
|
|> Phoenix.Controller.json(%{"message" => "invalid or expired admin token"})
|
|
|> halt()
|
|
end
|
|
end
|
|
end
|