File

src/iam/interceptors/permission.interceptor.ts

Index

Methods

Constructor

constructor(policyService: PolicyService)
Parameters :
Name Type Optional
policyService PolicyService No

Methods

Async intercept
intercept(context: ExecutionContext, next: CallHandler)
Parameters :
Name Type Optional
context ExecutionContext No
next CallHandler No
Returns : Promise<Observable<any>>
import {
  Injectable,
  NestInterceptor,
  ExecutionContext,
  CallHandler,
} from "@nestjs/common";
import { Observable } from "rxjs";
import { PolicyService } from "../policy/policy.service";

@Injectable()
export class PermissionInterceptor implements NestInterceptor {
  constructor(private readonly policyService: PolicyService) {}

  async intercept(
    context: ExecutionContext,
    next: CallHandler,
  ): Promise<Observable<any>> {
    const request = context.switchToHttp().getRequest();
    request.user.permission = await this.policyService.getUserPermissions(
      request.user.id,
    );

    return next.handle();
  }
}

results matching ""

    No results matching ""