Sites verwalten
Noch keine Sites konfiguriert.
Fügen Sie Ihre erste Site hinzu!
requireAdmin(); $db = Database::getInstance(); $appTitle = $db->getSetting('app_title', 'UniFi Voucher System'); $error = ''; $success = ''; // Site bearbeiten if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['edit_site'])) { if (!$auth->validateCsrfToken($_POST['csrf_token'] ?? '')) { $error = 'Ungültiges Sicherheits-Token'; } else { try { $siteId = (int)$_POST['site_id']; $name = trim($_POST['name']); $siteIdStr = trim($_POST['site_id_str']); $controllerUrl = trim($_POST['controller_url']); $username = trim($_POST['username']); $password = $_POST['password']; $publicAccess = isset($_POST['public_access']) ? 1 : 0; if (empty($name) || empty($siteIdStr) || empty($controllerUrl) || empty($username)) { throw new Exception('Bitte füllen Sie alle Pflichtfelder aus'); } // Wenn neues Passwort, Verbindung testen if (!empty($password)) { $testResult = UniFiController::testConnection($controllerUrl, $username, $password, $siteIdStr); if ($testResult !== true) { throw new Exception('Verbindung fehlgeschlagen: ' . $testResult); } // Mit neuem Passwort aktualisieren $db->execute( "UPDATE sites SET name = ?, site_id = ?, unifi_controller_url = ?, unifi_username = ?, unifi_password = ?, public_access = ? WHERE id = ?", [$name, $siteIdStr, $controllerUrl, $username, Crypto::encrypt($password), $publicAccess, $siteId] ); } else { // Ohne Passwort-Änderung $db->execute( "UPDATE sites SET name = ?, site_id = ?, unifi_controller_url = ?, unifi_username = ?, public_access = ? WHERE id = ?", [$name, $siteIdStr, $controllerUrl, $username, $publicAccess, $siteId] ); } $success = 'Site erfolgreich aktualisiert!'; } catch (Exception $e) { $error = $e->getMessage(); } } } // Site hinzufügen if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_site'])) { if (!$auth->validateCsrfToken($_POST['csrf_token'] ?? '')) { $error = 'Ungültiges Sicherheits-Token'; } else { try { $name = trim($_POST['name']); $siteId = trim($_POST['site_id']); $controllerUrl = trim($_POST['controller_url']); $username = trim($_POST['username']); $password = $_POST['password']; $publicAccess = isset($_POST['public_access']) ? 1 : 0; if (empty($name) || empty($siteId) || empty($controllerUrl) || empty($username)) { throw new Exception('Bitte füllen Sie alle Pflichtfelder aus'); } // Verbindung testen $testResult = UniFiController::testConnection($controllerUrl, $username, $password, $siteId); if ($testResult !== true) { throw new Exception('Verbindung fehlgeschlagen: ' . $testResult); } $db->execute( "INSERT INTO sites (name, site_id, unifi_controller_url, unifi_username, unifi_password, public_access) VALUES (?, ?, ?, ?, ?, ?)", [$name, $siteId, $controllerUrl, $username, Crypto::encrypt($password), $publicAccess] ); $success = 'Site erfolgreich hinzugefügt!'; } catch (Exception $e) { $error = $e->getMessage(); } } } // Site löschen if (isset($_GET['delete']) && isset($_GET['token'])) { if ($auth->validateCsrfToken($_GET['token'])) { $db->query("DELETE FROM sites WHERE id = ?", [(int)$_GET['delete']]); $success = 'Site erfolgreich gelöscht!'; } else { $error = 'Ungültiges Sicherheits-Token'; } } // Site aktivieren/deaktivieren if (isset($_GET['toggle']) && isset($_GET['token'])) { if ($auth->validateCsrfToken($_GET['token'])) { $site = $db->fetchOne("SELECT is_active FROM sites WHERE id = ?", [(int)$_GET['toggle']]); if ($site) { $newStatus = $site['is_active'] ? 0 : 1; $db->query("UPDATE sites SET is_active = ? WHERE id = ?", [$newStatus, (int)$_GET['toggle']]); $success = 'Site-Status aktualisiert!'; } } } // Alle Sites abrufen $sites = $db->fetchAll("SELECT * FROM sites ORDER BY name"); $currentUser = $auth->getCurrentUser(); ?>
Noch keine Sites konfiguriert.
Fügen Sie Ihre erste Site hinzu!