// FILE: src/middleware/permGuard.js
// Permission guard middleware
// - Checks if user has required permissions
// - Requires req.user.permissions to be populated (e.g. via auth.js or authJwt.js with enrichment)
// เปลี่ยนให้เป็น wrapper ที่เรียก req.principal (ทางเก่ายังใช้ได้)**

export function requirePerm(...allowedPerms) {
  return (req, res, next) => {
    const p = req.principal;
    if (!p) return res.status(401).json({ error: "Unauthenticated" });
    const ok = p.is_superadmin || allowedPerms.some((code) => p.permissions?.has?.(code));
    if (!ok) return res.status(403).json({ error: "FORBIDDEN", need_any_of: allowedPerms });
    next();
  };
}