All files / src/auth roles.guard.ts

100% Statements 12/12
100% Branches 1/1
100% Functions 2/2
100% Lines 10/10

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 201x 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);
  }
}