Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 1x 1x 1x 3x 3x 3x 1x 2x 2x 2x | import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common';
import { Reflector } from '@nestjs/core';
@Injectable()
export class RolesGuard implements CanActivate {
constructor(private reflector: Reflector) {}
canActivate(context: ExecutionContext): boolean {
const role = this.reflector.get<string[]>('roles', context.getHandler());
if (!role) {
return true;
}
const request = context.switchToHttp().getRequest();
const user = request.user;
return role.includes(user.role);
}
}
|