Datenschutz
Diese Seite ist nur für Administratoren zugänglich.
'; return; } $message = null; $error = null; $found = null; $searched = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { verify_csrf(); $action = $_POST['action'] ?? ''; if ($action === 'settings') { $unit = isset(datenschutz_units()[$_POST['unit'] ?? '']) ? $_POST['unit'] : 'days'; $picked = array_values(array_intersect(array_keys(datenschutz_field_labels()), (array) ($_POST['fields'] ?? []))); if (!$picked) { $error = 'Bitte mindestens eine Datenart zum Anonymisieren wählen.'; } else { plugin_set_setting(DATENSCHUTZ, 'amount', (string) max(1, (int) ($_POST['amount'] ?? 30))); plugin_set_setting(DATENSCHUTZ, 'unit', $unit); plugin_set_setting(DATENSCHUTZ, 'basis', ($_POST['basis'] ?? '') === 'created' ? 'created' : 'closed'); plugin_set_setting(DATENSCHUTZ, 'include_open', !empty($_POST['include_open']) ? '1' : '0'); plugin_set_setting(DATENSCHUTZ, 'fields', implode(',', $picked)); $message = 'Einstellungen gespeichert.'; } } elseif ($action === 'enable') { if (empty($_POST['confirm'])) $error = 'Bitte bestätigen, dass Sie die unwiderrufliche Anonymisierung einschalten wollen.'; else { plugin_set_setting(DATENSCHUTZ, 'enabled', '1'); datenschutz_log($pdo, 'manual', 0, 0, 'Automatische Anonymisierung eingeschaltet', (int) $staff['id']); $message = 'Die automatische Anonymisierung ist eingeschaltet. Sie läuft ab jetzt im Hintergrund.'; } } elseif ($action === 'disable') { plugin_set_setting(DATENSCHUTZ, 'enabled', '0'); datenschutz_log($pdo, 'manual', 0, 0, 'Automatische Anonymisierung ausgeschaltet', (int) $staff['id']); $message = 'Die automatische Anonymisierung ist ausgeschaltet.'; } elseif ($action === 'run') { $n = datenschutz_run($pdo, 500, 'manual', (int) $staff['id']); $message = $n . ' Ticket(s) anonymisiert.'; } elseif ($action === 'core_off') { set_setting('retention_enabled', '0'); audit_log($staff['id'], 'Automatische Datenlöschung des Kerns ausgeschaltet (Plugin Datenschutz übernimmt)'); $message = 'Die automatische Datenlöschung des Kerns ist ausgeschaltet.'; } elseif ($action === 'find') { $searched = trim((string) ($_POST['email'] ?? '')); $found = datenschutz_find_customer($pdo, $searched); if (!$found) $error = 'Unter dieser Adresse gibt es keinen registrierten Kunden.'; } elseif ($action === 'delete_customer') { if (empty($_POST['confirm'])) $error = 'Bitte die Löschung bestätigen.'; else { $r = datenschutz_delete_customer($pdo, $staff, (int) ($_POST['user_id'] ?? 0), !empty($_POST['close_open'])); if ($r['ok']) $message = 'Die Daten des Kunden wurden unwiderruflich gelöscht (' . $r['tickets'] . ' Ticket(s) anonymisiert, Konto anonymisiert, Nachrichten und Anhänge entfernt).'; else { $error = $r['error']; $searched = trim((string) ($_POST['email'] ?? '')); $found = datenschutz_find_customer($pdo, $searched); } } } } $cfg = datenschutz_config(); $count = datenschutz_candidate_count($pdo); $tabs = ['uebersicht' => 'Übersicht', 'einstellungen' => 'Einstellungen', 'antrag' => 'Löschung auf Antrag', 'protokoll' => 'Protokoll']; $tab = (string) ($_GET['tab'] ?? 'uebersicht'); if (!isset($tabs[$tab])) $tab = 'uebersicht'; // Nach einer Suche bzw. Löschung bleibt man im Reiter „Löschung auf Antrag“ if ($_SERVER['REQUEST_METHOD'] === 'POST' && in_array($_POST['action'] ?? '', ['find', 'delete_customer'], true)) $tab = 'antrag'; $log = []; $logTotal = 0; $perPage = 50; $seite = 1; if ($tab === 'protokoll') { $logTotal = (int) $pdo->query('SELECT COUNT(*) FROM plugin_datenschutz_log')->fetchColumn(); $pages = max(1, (int) ceil($logTotal / $perPage)); $seite = min($pages, max(1, (int) ($_GET['seite'] ?? 1))); $log = $pdo->query('SELECT l.*, s.name AS staff_name FROM plugin_datenschutz_log l LEFT JOIN staff s ON s.id = l.staff_id ORDER BY l.id DESC LIMIT ' . $perPage . ' OFFSET ' . (($seite - 1) * $perPage))->fetchAll(); } $coreOn = get_setting('retention_enabled', '0') === '1'; $kinds = ['auto' => 'Automatisch', 'manual' => 'Von Hand', 'request' => 'Löschung auf Antrag']; ?>

Datenschutz

Die automatische Datenlöschung von DeskHub (Einstellungen → Datenschutz) ist eingeschaltet. Sie anonymisiert nach ihrer Frist auch registrierte Kunden. Das widerspricht der Regel „Daten registrierter Kunden bleiben bis zur Löschung auf Antrag“. Schalten Sie sie aus, dieses Plugin übernimmt die Aufgabe.

Regeln

✓ Automatische Anonymisierung ist eingeschaltet. Zurzeit fällig: Ticket(s). Letzter Lauf: . Die automatische Anonymisierung ist noch ausgeschaltet. Beim Einschalten würden sofort vorhandene Ticket(s) anonymisiert.

Einstellungen (nur Administratoren)

[$plabel, $pfields]): ?>
$flabel): ?>

Nachrichten können Namen, Adressen oder Telefonnummern im Text enthalten; Antworten der Mitarbeiter bleiben immer erhalten. Die Auswahl gilt für Tickets, die ab jetzt anonymisiert werden. Bereits bearbeitete Tickets werden nicht noch einmal angefasst.

Löschung auf Antrag eines registrierten Kunden

Der Kunde hat die Löschung seiner Daten verlangt. Das Konto wird anonymisiert und kann sich nicht mehr anmelden. Seine Tickets verlieren Name, Adresse, Nachrichten und Anhänge. Das ist nicht rückgängig zu machen.

()
Ticket(s), davon offen.

Dieser Kunde ist bereits anonymisiert.

Protokoll

Noch keine Einträge. Das Protokoll enthält keine Kundendaten, bei Löschanträgen nur eine verkürzte Adresse.

WannArtTicketsHinweisVon
1): ?>

1): ?>← Neuere · Seite von · Ältere →