Skip to content

[CRITICAL] Cross-Tenant Person-Matching: Typeahead + Email-Lookup fehlen, Email case-sensitive #214

Description

@Lionhunt3r

Cluster: Cross-Tenant Person-Matching

Massive Lücke in Flutter — Ionic v4.0.5 hat das stark überarbeitet.

Findings

B10-007: Email-Vergleich case-sensitive (KRITISCH BUG)

  • Ionic v4.0.5 nutzt .ilike('email', email.trim()) (case-insensitive + getrimmt)
  • Flutter nutzt .eq('email', player.email!) → 'Max@example.com' und 'max@example.com' werden als unterschiedliche Personen behandelt → Duplikate werden NICHT erkannt
  • Effort: 0.5h
  • Datei: lib/data/repositories/player_repository.dart:909-938

B3-010: Cross-Tenant Person-Matching (Typeahead) komplett fehlt (KRITISCH)

  • Ionic onNameInput() ruft db.getPossiblePersonsByName(first, last) auf, zeigt Live-Vorschläge aus linked tenants als RankedMatch[]
  • dismissNameSuggestions(), applyMatchedPerson()
  • Flutter hat nur lokalen Duplikat-Check innerhalb des Tenants
  • Effort: 16h

B3-011: Email-Blur Cross-Tenant-Match Lookup fehlt (KRITISCH)

  • Ionic onEmailBlur() prüft via db.getPossiblePersonsByEmail(email), ob diese E-Mail in einer anderen Instanz existiert
  • Verhindert Duplikate über Tenants hinweg
  • Flutter: komplett fehlend
  • Effort: 6h

B3-025 / B3-026: Repository-Methoden + Person-Matcher Utility fehlen

  • getPossiblePersonsByName + getPossiblePersonsByEmail im Repository
  • Levenshtein, normalizeName (Umlaut-Transliteration), RankedMatch, Threshold-Filter Utility
  • Effort: 8h + 4h

B10-008/009/010: Handover-Bugs

  • Empty-Email Person wird über appId fälschlich als Duplikat erkannt
  • appId/hasTeacher/teacher/playsSince/img/self_register werden nicht kopiert
  • Role.RESPONSIBLE wird bei Hauptgruppen-Mapping nicht gesetzt
  • Effort: 3h

Sprint

Sprint 4 (Cross-Tenant Person-Matching) — Gesamt-Effort ~37.5h.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingmigration-backlogItem from Ionic→Flutter migration backlogpriority: criticalCritical priority - fix immediately

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions