src/iam/interceptors/permission.interceptor.ts
Methods |
|
constructor(policyService: PolicyService)
|
||||||
|
Parameters :
|
| Async intercept | |||||||||
intercept(context: ExecutionContext, next: CallHandler)
|
|||||||||
|
Parameters :
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();
}
}