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 20 21 22 23 24 25 26 27 28 29 | import { Injectable, UnauthorizedException, type ExecutionContext } from '@nestjs/common'; import { AuthGuard } from '@nestjs/passport'; import { assert, toError } from '@amalia/ext/typescript'; import { type AuthenticatedContext } from '@amalia/kernel/auth/types'; @Injectable() export class SuperAdminAuthGuard extends AuthGuard('jwt') { public override handleRequest<TAuthenticatedContext extends AuthenticatedContext>( err: unknown, authenticatedContext: TAuthenticatedContext, info: unknown, context: ExecutionContext, ) { super.handleRequest(err, authenticatedContext, info, context); if (err) { throw toError(err); } assert( authenticatedContext.meta?.amaliaImpersonatorEmail, new UnauthorizedException('Only super admins can use this endpoint'), ); return authenticatedContext; } } |