add chat user roles and logout

This commit is contained in:
team 1
2026-05-11 12:33:27 +02:00
parent 83ac6d600e
commit d1dab68cfb
4 changed files with 42 additions and 2 deletions

View File

@@ -39,6 +39,7 @@ parameters:
footer_disclaimer: 'powered by mitho® | RetrieX kann fehlerhafte Ausgaben machen. RetrieX verwendet alle Daten zum Trainieren seiner Modelle.'
buttons:
clear: 'Diesen Chat löschen'
logout: 'Abmelden'
send: 'Send'
abort: 'Abbrechen'
options:

View File

@@ -0,0 +1,37 @@
# RetrieX Patch 89 - Chat Logout Button
## Ziel
Der Chatbereich erhaelt einen sichtbaren Logout-Einstieg im Chat-Header. Die bestehende Chat-Security aus p88 bleibt unveraendert: Der Logout laeuft ueber die Chat-Route `/chat/logout` und die Chat-Firewall, nicht ueber den Adminbereich.
## Aenderungen
- `templates/chat/index.html.twig`
- Fuegt im Chat-Header einen Logout-Link auf `path('chat_logout')` hinzu.
- Der Link nutzt die bestehende `btn btn-trans`-Optik.
- Der Link nutzt `data-chat-message-text="ui.buttons.logout"`, damit der sichtbare Text ueber die zentrale Chat-Message-Konfiguration gepflegt wird.
- `config/retriex/chat-messages.yaml`
- Ergaenzt `frontend.ui.buttons.logout: 'Abmelden'`.
## Bewusst nicht geaendert
- Keine neue Userverwaltung.
- Keine Admin-Security-Aenderung.
- Keine Aenderung an RAG, Retrieval, Scoring, Ranking, Shop-Matching, SSE oder History-Logik.
- Keine Aenderung am bestehenden `/chat/logout`-Controller/Firewall-Setup aus p88.
## Erwartetes Verhalten
- Eingeloggte Chat-User sehen im Chat-Header einen Button/Link `Abmelden`.
- Klick auf `Abmelden` fuehrt zu `/chat/logout`.
- Symfony faengt den Logout ueber die Chat-Firewall ab und leitet anschliessend zu `/chat/login` weiter.
- Der Adminbereich bleibt davon getrennt.
## Pruefungen lokal
- YAML-Parsing fuer `config/retriex/chat-messages.yaml`.
- Strukturcheck fuer `path('chat_logout')` im Chat-Template.
- Strukturcheck fuer `ui.buttons.logout` in `chat-messages.yaml`.
Symfony-Console-Checks muessen in der Zielumgebung mit installiertem `vendor/` ausgefuehrt werden.

View File

@@ -32,6 +32,7 @@
<button id="clear" class="btn btn-trans" data-chat-message-text="ui.buttons.clear"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-trash-fill" viewBox="0 0 16 16">
<path d="M2.5 1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1H3v9a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V4h.5a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1zm3 4a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 .5-.5M8 5a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7A.5.5 0 0 1 8 5m3 .5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 1 0"/>
</svg></button>
<a id="chat-logout" href="{{ path('chat_logout') }}" class="btn btn-trans" data-chat-message-text="ui.buttons.logout">Abmelden</a>
</div>
<div id="ai-cloud" class="ai-cloud d-none"></div>
<div id="chat" class="chat"></div>

View File

@@ -6,19 +6,20 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="{{ asset('assets/styles/bootstrap.min.css') }}" rel="stylesheet">
<link rel="stylesheet" href="{{ asset('assets/styles/base.css') }}">
<link rel="shortcut icon" href="https://www.mitho-media.de/media/fc/16/42/1667224106/favicon.ico?ts=1767609928">
</head>
<body class="bg-black text-light">
<div class="container">
<div class="row justify-content-center align-items-center" style="min-height:100vh;">
<div class="col-12 col-md-5 col-lg-4">
<div class="col-12 col-md-6 col-lg-6">
<div class="card bg-black border-secondary text-info">
<div class="card-body">
<header class="text-center mb-4">
<img src="{{ asset('assets/img/logo.png') }}" style="max-width: 100px;" alt="">
<h1 class="h5 mt-3 mb-1 text-info">RetrieX Chat</h1>
<div class="small text-secondary">Login fuer den Chatbereich</div>
<div class="small text-secondary">Login für den Chatbereich</div>
</header>
{% if error %}