import { Injectable, CanActivate, ExecutionContext, ForbiddenException, } from '@nestjs/common'; import { JwtPayload } from '../../common/decorators/current-user.decorator'; @Injectable() export class TenantGuard implements CanActivate { canActivate(context: ExecutionContext): boolean { const request = context.switchToHttp().getRequest(); const user = request.user as JwtPayload; // Alle User (auch PLATFORM_ADMIN) muessen eine tenantId haben // um auf tenant-spezifische CRM-Ressourcen zuzugreifen. if (!user?.tenantId) { throw new ForbiddenException( 'Kein Mandant zugeordnet. Bitte mit einem mandanten-gebundenen Account anmelden.', ); } return true; } }