Add latest changes

Dieser Commit ist enthalten in:
2025-07-03 20:38:33 +00:00
Ursprung 63f3d92724
Commit 6f6cde65db
129 geänderte Dateien mit 3998 neuen und 1199 gelöschten Zeilen

Datei anzeigen

@@ -32,6 +32,7 @@ def export_licenses():
l.valid_until,
l.is_active,
l.device_limit,
l.max_concurrent_sessions,
l.created_at,
l.is_fake,
CASE
@@ -39,8 +40,8 @@ def export_licenses():
WHEN l.is_active = false THEN 'Deaktiviert'
ELSE 'Aktiv'
END as status,
(SELECT COUNT(*) FROM sessions s WHERE s.license_key = l.license_key AND s.is_active = true) as active_sessions,
(SELECT COUNT(DISTINCT hardware_id) FROM sessions s WHERE s.license_key = l.license_key) as registered_devices
(SELECT COUNT(*) FROM license_sessions ls WHERE ls.license_id = l.id) as active_sessions,
(SELECT COUNT(DISTINCT hardware_fingerprint) FROM device_registrations dr WHERE dr.license_id = l.id AND dr.is_active = true) as registered_devices
FROM licenses l
LEFT JOIN customers c ON l.customer_id = c.id
WHERE l.is_fake = false
@@ -52,7 +53,7 @@ def export_licenses():
# Daten für Export vorbereiten
data = []
columns = ['ID', 'Lizenzschlüssel', 'Kunde', 'E-Mail', 'Typ', 'Gültig von',
'Gültig bis', 'Aktiv', 'Gerätelimit', 'Erstellt am', 'Fake-Lizenz',
'Gültig bis', 'Aktiv', 'Gerätelimit', 'Max. Sessions', 'Erstellt am', 'Fake-Lizenz',
'Status', 'Aktive Sessions', 'Registrierte Geräte']
for row in cur.fetchall():
@@ -62,8 +63,8 @@ def export_licenses():
row_data[5] = format_datetime_for_export(row_data[5])
if row_data[6]: # valid_until
row_data[6] = format_datetime_for_export(row_data[6])
if row_data[9]: # created_at
row_data[9] = format_datetime_for_export(row_data[9])
if row_data[10]: # created_at (index shifted due to max_concurrent_sessions)
row_data[10] = format_datetime_for_export(row_data[10])
data.append(row_data)
# Format prüfen
@@ -239,7 +240,7 @@ def export_sessions():
s.license_key,
l.customer_name,
s.username,
s.hardware_id,
s.hardware_fingerprint as hardware_id,
s.started_at,
s.ended_at,
s.last_heartbeat,
@@ -259,7 +260,7 @@ def export_sessions():
s.license_key,
l.customer_name,
s.username,
s.hardware_id,
s.hardware_fingerprint as hardware_id,
s.started_at,
s.ended_at,
s.last_heartbeat,
@@ -416,7 +417,7 @@ def export_monitoring():
lh.license_id,
l.license_key,
c.name as customer_name,
lh.hardware_id,
lh.hardware_fingerprint as hardware_id,
lh.ip_address,
'Heartbeat' as event_type,
'Normal' as severity,
@@ -447,7 +448,7 @@ def export_monitoring():
ad.license_id,
l.license_key,
c.name as customer_name,
ad.details->>'hardware_id' as hardware_id,
ad.details->>'hardware_fingerprint' as hardware_id,
ad.details->>'ip_address' as ip_address,
ad.anomaly_type as event_type,
ad.severity,