import { type CanActivate, type ExecutionContext } from '@nestjs/common'; import { GqlExecutionContext } from '@nestjs/graphql'; import { type Observable } from 'rxjs'; import { userIsFullAdmin } from 'src/engine/core-modules/impersonation/utils/user-is-full-admin.util'; export class AdminPanelGuard implements CanActivate { canActivate( context: ExecutionContext, ): boolean | Promise | Observable { const ctx = GqlExecutionContext.create(context); const request = ctx.getContext().req; return userIsFullAdmin(request.user); } }