28 lines
1.1 KiB
TypeScript
Executable File
28 lines
1.1 KiB
TypeScript
Executable File
// import { CanActivate, ExecutionContext, ForbiddenException, Injectable } from "@nestjs/common";
|
|
// import { Reflector } from "@nestjs/core";
|
|
// import { FastifyRequest } from "fastify";
|
|
|
|
// import { ROLES_KEY } from "../../../common/decorators/roles.decorator";
|
|
// import { AuthMessage } from "../../../common/enums/message.enum";
|
|
// import { RoleEnum } from "../../users/enums/role.enum";
|
|
|
|
// @Injectable()
|
|
// export class RoleGuard implements CanActivate {
|
|
// constructor(private reflector: Reflector) {}
|
|
|
|
// canActivate(context: ExecutionContext): boolean {
|
|
// const requiredRole = this.reflector.getAllAndOverride<RoleEnum[]>(ROLES_KEY, [context.getHandler(), context.getClass()]);
|
|
// if (!requiredRole) return true;
|
|
|
|
// const req = context.switchToHttp().getRequest<FastifyRequest>();
|
|
// const user = req.user;
|
|
|
|
// if (!user) throw new ForbiddenException(AuthMessage.UNAUTHORIZED_ACCESS);
|
|
|
|
// const hasRequiredRole = requiredRole.some((role) => user.roles.includes(role));
|
|
// if (!hasRequiredRole) throw new ForbiddenException(AuthMessage.UNAUTHORIZED_ACCESS);
|
|
|
|
// return true;
|
|
// }
|
|
// }
|