import { RequestHandler, Request, Response, NextFunction } from "express"; import { CurrentContext } from "@t9tlai/host-runner-utils"; import getUserMetadata from "../utils/getUserMetadata"; export default function validateIsPartOfTeam(): RequestHandler { return (req: Request, res: Response, next: NextFunction) => { const userMetadata = getUserMetadata(req.user); const teamInfo = userMetadata?.teams?.[CurrentContext.teamId]; if (teamInfo) { req.logger = req.logger.child({ userId: userMetadata?.userIdentifier, teamId: CurrentContext.teamId, isTeamAdmin: teamInfo.isAdmin, }); next(); } else { req.logger.warn("User is not part of the team", { teamId: CurrentContext.teamId, user: req.user, }); res.sendStatus(403); } }; }