--- description: globs: alwaysApply: false --- # Authentifizierung und Benutzerrollen Die Anwendung nutzt Flask-Login für das Authentifizierungssystem: ## Hauptkomponenten - [LoginManager](mdc:app.py): Konfiguration im app.py - [User Model](mdc:models.py): Die User-Klasse implementiert UserMixin für Flask-Login - Passwort-Hashing: Verwendet Werkzeug Security für sichere Passwort-Speicherung ## Authentifizierungsrouten - `/login`: Benutzeranmeldung (GET/POST) - `/register`: Benutzerregistrierung (GET/POST) - `/logout`: Benutzerabmeldung ## Benutzerrollen - Reguläre Benutzer: Grundlegende Funktionen - Administratoren (`is_admin=True`): Erweiterte Privilegien ## Zugriffskontrollen - `@login_required`: Decorator für routenspezifischen Authentifizierungsschutz - `@admin_required`: Benutzerdefinierter Decorator für Admin-Zugriffskontrolle ## Sitzungsverwaltung - Tracking von Anmeldezeit (`last_login`) - Langlebige Sitzungen für Präferenzen (z.B. Dark Mode) - Angepasste Flash-Nachrichten ## Profilmanagement - `/settings`: Benutzereinstellungen aktualisieren - Passwortänderung - Profildetails (Biografie, Avatar, etc.)