Vertragssuche: Karteninhaber (cardUser) durchsuchbar (Pentest R150)

getAllContracts durchsucht jetzt auch simCards.cardUser - zusaetzlich zu
Rufnummer/SIM-Nummer/IMEI. R150-Randnotiz, fachlich gewuenscht (Staff sucht
nach Karteninhaber). Portal-Suche bleibt durch das bestehende customerIds-
Scoping begrenzt.

Verifiziert: Suche nach gesetztem cardUser findet den Vertrag, Kontroll-
Suche 0 Treffer.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-13 12:50:36 +02:00
co-authored by Claude Opus 4.8
parent 2d12221c41
commit b2b1cb3387
2 changed files with 4 additions and 0 deletions
+1
View File
@@ -67,6 +67,7 @@ export async function getAllContracts(filters: ContractFilters) {
{ mobileDetails: { deviceImei: { contains: search } } },
{ mobileDetails: { simCards: { some: { phoneNumber: { contains: search } } } } },
{ mobileDetails: { simCards: { some: { simCardNumber: { contains: search } } } } },
{ mobileDetails: { simCards: { some: { cardUser: { contains: search } } } } },
// Energie-Vertragsdetails (Zählernummer)
{ energyDetails: { meter: { meterNumber: { contains: search } } } },
// TV-Vertragsdetails
+3
View File
@@ -112,6 +112,9 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
Staff-**Tabelle** in `/contracts` (flache `getAll`-Liste) UND der
Portal-Baum in `/contracts`. Der erste Anlauf hatte nur die Baum-Pfade
die Staff-Tabelle (Haupt-Ansicht für Mitarbeiter) fehlte und wurde nachgezogen.
- **Vertragssuche** (`?search=`) durchsucht jetzt auch den **Karteninhaber**
(`simCards.cardUser`) zusätzlich zu Rufnummer/SIM-Nummer/IMEI (Pentest-R150-
Randnotiz, fachlich gewünscht). Portal-Suche bleibt durch Scoping begrenzt.
- [x] **🛡️ Globaler API-Rate-Limit-Backstop + BLZ-Guard-Härtung (Pentest R148)** (2026-08-12)
- **Backstop:** Neuer genereller Limiter auf ALLE `/api`-Requests