Add latest changes
Dieser Commit ist enthalten in:
@@ -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,
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren