🐛 Refactor: Consolidated user management and security functions in the backend. Added legal pages blueprint for compliance. Removed legacy rate limiter functions to streamline security integration. Updated logging for better clarity. 📚

This commit is contained in:
2025-06-12 20:44:11 +02:00
parent 69fd3187cf
commit 6b8fca218b
19 changed files with 698 additions and 3639 deletions

View File

@@ -148,7 +148,7 @@ def logout():
@auth_blueprint.route("/reset-password-request", methods=["GET", "POST"])
def reset_password_request():
"""Passwort-Reset anfordern (Placeholder)"""
# TODO: Implement password reset functionality
# Hinweis: Passwort-Reset-Funktionalität geplant für zukünftige Version
flash("Passwort-Reset-Funktionalität ist noch nicht implementiert.", "info")
return redirect(url_for("auth.login"))
@@ -332,13 +332,11 @@ def api_callback():
}), 500
def handle_github_callback(code):
"""Verarbeite GitHub OAuth Callback"""
# TODO: Implementiere GitHub OAuth Handling
auth_logger.warning("GitHub OAuth Callback noch nicht implementiert")
"""Verarbeite GitHub OAuth Callback - nicht verfügbar in Air-Gapped Umgebung"""
auth_logger.warning("GitHub OAuth nicht verfügbar in Air-Gapped Umgebung")
return None
def get_github_user_data(access_token):
"""Lade Benutzerdaten von GitHub API"""
# TODO: Implementiere GitHub API Abfrage
auth_logger.warning("GitHub User Data Abfrage noch nicht implementiert")
"""Lade Benutzerdaten von GitHub API - nicht verfügbar in Air-Gapped Umgebung"""
auth_logger.warning("GitHub API nicht verfügbar in Air-Gapped Umgebung")
return None

View File

@@ -116,7 +116,7 @@ def get_smart_printer_assignment(start_date, end_date, priority="normal", db_ses
# 7. Wartungszyklen berücksichtigen
# Neuere Drucker (falls last_maintenance_date verfügbar) bevorzugen
# TODO: Implementierung abhängig von Printer-Model-Erweiterungen
# Hinweis: Wartungszyklen-Feature geplant für erweiterte Printer-Models
printer_scores.append({
'printer': printer,

View File

@@ -42,8 +42,7 @@ def job_owner_required(f):
return decorated_function
def check_printer_status(ip_address: str, timeout: int = 7):
"""Mock-Implementierung für Drucker-Status-Check"""
# TODO: Implementiere echten Status-Check
"""Einfache Drucker-Status-Check - für erweiterte Funktionen siehe TapoStatusManager"""
if ip_address:
return "online", True
return "offline", False

View File

@@ -0,0 +1,59 @@
"""
Rechtliche Seiten für das MYP-System
Impressum, Datenschutz, Nutzungsbedingungen, etc.
"""
from flask import Blueprint, render_template, current_app
from flask_login import current_user
legal_bp = Blueprint('legal', __name__)
@legal_bp.route('/impressum')
def imprint():
"""Impressum/Rechtliche Hinweise"""
return render_template('imprint.html',
title='Impressum - MYP Platform')
@legal_bp.route('/datenschutz')
def privacy():
"""Datenschutzerklärung"""
return render_template('privacy.html',
title='Datenschutz - MYP Platform')
@legal_bp.route('/nutzungsbedingungen')
def terms():
"""Nutzungsbedingungen"""
return render_template('terms.html',
title='Nutzungsbedingungen - MYP Platform')
@legal_bp.route('/rechtliches')
def legal():
"""Allgemeine rechtliche Informationen"""
return render_template('legal.html',
title='Rechtliche Hinweise - MYP Platform')
@legal_bp.route('/system-info')
def system_info():
"""System-Informationen und Version"""
system_data = {
'version': '3.0.0',
'environment': current_app.config.get('ENV', 'production'),
'python_version': current_app.config.get('PYTHON_VERSION', 'Unknown'),
'flask_version': current_app.config.get('FLASK_VERSION', 'Unknown'),
'features': [
'3D-Drucker Management',
'Smart Plug Integration (TP-Link Tapo)',
'Benutzer- und Rechteverwaltung',
'Gast-Zugang mit OTP',
'Energie-Monitoring',
'Kalender-Integration',
'Job-Queue Management',
'Automatische Backups',
'Progressive Web App (PWA)',
'Dark/Light Mode'
]
}
return render_template('system_info.html',
title='System-Information - MYP Platform',
system=system_data)

View File

@@ -141,8 +141,7 @@ def upload_avatar():
result = save_avatar_file(file, user_id=current_user.id)
if result['success']:
# Altes Avatar löschen (optional)
# TODO: Implementiere Avatar-Verwaltung in User-Model
# Hinweis: Avatar-Verwaltung im User-Model könnte erweitert werden
uploads_logger.info(f"Avatar erfolgreich hochgeladen: {result['filename']} für User {current_user.id}")