Spaces:
Running
Running
File size: 579 Bytes
2f0e1b7 6a7bf05 2f0e1b7 6a7bf05 f6445dd 2f0e1b7 6a7bf05 2f0e1b7 6a7bf05 2f0e1b7 6a7bf05 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import { Role } from "@common/enums/role.enum";
import { IJwtLoginPayload } from "@common/interfaces/jwt-payload.interface";
import { genGuard } from "@lib/guards/gen-guard";
type AdminGuardMiddlewareProps = {
roles?: Role[];
};
export const AdminGuardMiddleware = genGuard(
async (args: AdminGuardMiddlewareProps = {}, payload: IJwtLoginPayload) => {
if (payload.type !== "admin") {
return false;
}
if (args?.roles && args?.roles.length > 0) {
if (!args.roles.includes(payload.role)) {
return false;
}
}
return true;
}
);
|