feat: Multi-User-Unterstützung mit JWT-Authentifizierung
- User-Modell (username, password_hash, role admin/user, is_active) - Standard-Admin-Benutzer wird beim ersten Start automatisch angelegt - JWT-Tokens (HS256) für Benutzer-Sessions, konfigurierbare Ablaufzeit - API-Key bleibt für service-to-service-Calls (backward-compatible) - POST /api/v1/auth/login → JWT-Token - GET /api/v1/auth/me → aktueller Benutzer - CRUD /api/v1/users/ → Benutzerverwaltung (nur Admin) - TUI zeigt Login-Screen beim Start; nach Erfolg → MainScreen - Passwort-Hashing mit bcrypt (python-jose für JWT)
This commit is contained in:
@@ -3,6 +3,7 @@ from __future__ import annotations
|
||||
from textual.app import App
|
||||
|
||||
from tui.api_client import MCMApiClient
|
||||
from tui.screens.login_screen import LoginScreen
|
||||
from tui.screens.main_screen import MainScreen
|
||||
|
||||
|
||||
@@ -11,11 +12,11 @@ class MCMApp(App):
|
||||
|
||||
TITLE = "MCM – MultiCustomerMessenger"
|
||||
CSS_PATH = "styles.tcss"
|
||||
SCREENS = {"main": MainScreen}
|
||||
SCREENS = {"login": LoginScreen, "main": MainScreen}
|
||||
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
self._api_client = MCMApiClient()
|
||||
|
||||
def on_mount(self) -> None:
|
||||
self.push_screen("main")
|
||||
self.push_screen("login")
|
||||
|
||||
Reference in New Issue
Block a user