mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-15 14:27:23 +00:00
27 lines
788 B
TypeScript
27 lines
788 B
TypeScript
import { NextFunction, Request, Response } from "express";
|
|
import { Types } from "mongoose";
|
|
import { validateClientForServiceTokenData } from "../validation";
|
|
|
|
type req = "params" | "body" | "query";
|
|
|
|
const requireServiceTokenDataAuth = ({
|
|
acceptedRoles,
|
|
location = "params",
|
|
}: {
|
|
acceptedRoles: Array<"admin" | "member">;
|
|
location?: req;
|
|
}) => {
|
|
return async (req: Request, res: Response, next: NextFunction) => {
|
|
const { serviceTokenDataId } = req[location];
|
|
|
|
req.serviceTokenData = await validateClientForServiceTokenData({
|
|
authData: req.authData,
|
|
serviceTokenDataId: new Types.ObjectId(serviceTokenDataId),
|
|
acceptedRoles,
|
|
});
|
|
|
|
next();
|
|
}
|
|
}
|
|
|
|
export default requireServiceTokenDataAuth; |