enhancement
major
minor
defect
critical
major
minor
major
#30109
tl-chat: Nach der Anmeldung im selben Browser-Fenster bleibt der Chat bei „Melde dich an, um den Chat zu nutzen“
Fehler
Der Chat der React-Oberfläche (<chat-conversation>, Modul tl-chat) zeigt einem nicht angemeldeten Besucher statt Verlauf und Eingabefeld den Hinweis „Melde dich an, um den Chat zu nutzen“. Meldet sich der Anwender anschließend im selben Browser-Fenster an, bleibt der Hinweis stehen: Es erscheint kein Eingabefeld, auch nicht nach einem Neuladen der Seite. Erst ein neues Browser-Fenster (neuer Fenstername) zeigt den Chat.
Beobachtet in tl-ai-demo (/view/, Seite „Chat“): Seite unangemeldet geöffnet, über „Anmelden“ als root angemeldet, die Seite „Chat“ zeigt weiter den Anmeldehinweis.
Ursache
Nach der Anmeldung bleibt die Sub-Session des Fensters erhalten; ViewServlet baut den Kontrollbaum für den neuen Benutzer neu auf. Die neuen Chat-Controls holen ihre ChatViewBinding (com.top_logic.ai.chat.view) aber aus dem Zwischenspeicher der Sub-Session (Schlüssel BINDINGS), und die Bindung hat im Konstruktor authenticated, Benutzername und Begrüßungsname des anonymen Aufrufs festgeschrieben. Der Client bekommt deshalb weiter authenticated=false.
Lösung
- ChatViewBinding schreibt Anmeldezustand, Benutzernamen und Begrüßungsnamen nicht mehr fest, sondern liest sie bei jedem Schreiben des Control-Zustands aus dem aktuellen Benutzer des Fensters.
- Test: Eine Bindung, die anonym entstand, meldet nach der Anmeldung im selben Fenster authenticated=true und den Namen des Kontos.