Ctrl K
ComunidadGuías…

server/middleware/admin.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import type { MiddlewareHandler } from "hono";
import { HttpError } from "../exceptions/HttpError.ts";
import type { SessionVariables } from "./session.ts";

/**
 * ÉCHEC FERMÉ : `/api/admin/*` est réservé aux administrateurs (rôle en base, donné par
 * `bun run users:promote` puis par d'autres administrateurs) → sinon 403. Posée dans `apiRouter`
 * après la session et le code du jour, une seule fois pour tout `/api/admin/*`.
 */
export const requireAdmin: MiddlewareHandler<{ Variables: SessionVariables }> = async (c, next) => {
  if (c.get("session").role !== "admin") throw new HttpError(403, "forbidden", "Administrators only");
  await next();
};