feat(quick-260909-ab3): verstaendlicher Sync-Bericht, Konten ohne Adresse in der UI

- admin/ldap/page.tsx: SyncResult um emailConflicts/skippedNoLogin/
  entryFailures erweitert; drei neue Berichtsabschnitte (Bernstein fuer
  Kollisionen, neutral fuer fehlenden Anmeldenamen, destruktiv fuer
  unerwartete Fehler) — kein englischer Techniktext, kein roher
  Datenbank-Wortlaut mehr im Bericht
- GroupMembersModal.tsx: TenantUser.email optional, Suchvergleich gegen
  leere Adresse abgesichert (WINDOWS #15) — die Mitgliedersuche stuerzt
  nicht mehr ab, sobald ein Konto ohne Adresse existiert
- users/page.tsx: User.email optional, Formular faellt auf leere
  Zeichenkette zurueck, Tabellenzelle zeigt einen Gedankenstrich;
  UserFormData.email bleibt bei Handanlage Pflicht
- Neue Sprachschluessel unter admin.ldap.sync in de.json/en.json,
  Umlaut- und Sprachschluessel-Gate bestaetigt gruen (kein neues
  Allowlist-Wort noetig)
- Neuer Testfall in groups-page.test.tsx vorab gegen den unveraenderten
  Bestand rot gelaufen; Abweichung von der Plan-Fixture dokumentiert
  (Kurzfassung: ein einzelnes Konto mit passendem Benutzernamen loest die
  Kollision wegen OR-Kurzschlussauswertung nie aus, ein zweites,
  nicht-treffendes Konto ohne Adresse schon — Vollfassung im SUMMARY)
- 651/651 API- und 233/233 Web-Tests gruen, beide Typpruefungen sauber

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FYZcd3SSmo14QTqWx2KKzU
This commit is contained in:
2026-09-09 07:54:32 +02:00
parent 1222951af6
commit 21670462dd
6 changed files with 99 additions and 6 deletions
+4
View File
@@ -336,6 +336,10 @@
"resultGroupMemberships": "Gruppenmitgliedschaften: {groupMembershipsAdded} hinzugefügt, {groupMembershipsRemoved} entfernt",
"resultGroups": "AD-Gruppen: {groupsAdopted} neu übernommen, {groupsRenamed} umbenannt, {groupsDeleted} gelöscht",
"defaultMarkerMoved": "Standardgruppen-Markierung musste neu vergeben werden ({defaultMarkerMoved}×).",
"emailConflictsHeading": "Diese Konten wurden ohne E-Mail-Adresse angelegt, weil die Adresse bereits zu einem anderen Konto gehört. Anmeldung und Zugriff funktionieren, nur Benachrichtigungen per E-Mail erreichen sie nicht.",
"emailConflictLine": "{account} — Adresse bereits vergeben an ein anderes Konto: {email}",
"skippedNoLoginHeading": "Ohne Anmeldenamen übersprungen — normal für Kontakte und Verteiler im Verzeichnis.",
"entryFailuresHeading": "Bei diesen Einträgen trat ein unerwarteter Fehler auf. Die technischen Angaben stehen im Protokoll des Servers.",
"requestError": "Die Synchronisation konnte nicht ausgeführt werden."
},
"groupFilter": {