UNPKG

auth-service-nestjs

Version:

Authorization service for lightweight systems

16 lines (13 loc) 529 B
import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common'; import { Reflector } from '@nestjs/core'; @Injectable() export class RoleGlobalGuard implements CanActivate { constructor(private reflector: Reflector) {} async canActivate(context: ExecutionContext): Promise<boolean> { const roles = this.reflector.get<string[]>('roles', context.getHandler()); const { user: { role = undefined } = {} } = context .switchToHttp() .getRequest(); return !roles || roles.includes(role); } }