Passed
Pull Request — master (#86)
by Mathieu
01:24
created

RolesGuard.canActivate   A

Complexity

Conditions 2

Size

Total Lines 12
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 11
dl 0
loc 12
rs 9.85
c 0
b 0
f 0
cc 2
1
import {Injectable, CanActivate, ExecutionContext} from '@nestjs/common';
2
import {Reflector} from '@nestjs/core';
3
4
@Injectable()
5
export class RolesGuard implements CanActivate {
6
  constructor(private reflector: Reflector) {}
7
8
  public canActivate(context: ExecutionContext): boolean {
9
    const roles = this.reflector.get<string[]>('roles', context.getHandler());
10
11
    if (!roles) {
12
      return true;
13
    }
14
15
    const request = context.switchToHttp().getRequest();
16
    const {user} = request;
17
18
    return roles.includes(user.getRole());
19
  }
20
}
21