import type { H3Event } from "h3"; import type { MinimalUser } from "#server/service/auth"; import { requireUser } from "#server/utils/context"; import log4js from "logger"; const logger = log4js.getLogger("AUTH"); export async function requireAdmin(event: H3Event): Promise { const user = await requireUser(event); if (user.role !== "admin") { logger.warn( "[ADMIN-DENIED] userId=%d username=%s path=%s — 非管理员访问被拒绝", user.id, user.username, event.path, ); throw createError({ statusCode: 403, statusMessage: "需要管理员权限", }); } return user; }