"""
Optionale Token-Auth.

Wenn MC_TOKEN gesetzt ist, muss jeder API-Call den Header X-MC-Token mitschicken.
Leer = keine Auth (nur im vertrauenswuerdigen LAN betreiben!).
"""

from fastapi import Header, HTTPException, Query

from config import TOKEN


def auth(x_mc_token: str = Header(default=""), token: str = Query(default="")):
    t = x_mc_token or token
    if TOKEN and t != TOKEN:
        raise HTTPException(status_code=401, detail="Falsches oder fehlendes Token.")
