From 374b6d465e2b0f1d699490d29cfceb6c4ee190b9 Mon Sep 17 00:00:00 2001 From: blaerf Date: Fri, 5 Dec 2025 09:23:51 +0100 Subject: [PATCH] LDAP Connection URI angepasst --- public/index.php | 48 +++++++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/public/index.php b/public/index.php index db133fd..326c937 100644 --- a/public/index.php +++ b/public/index.php @@ -19,11 +19,12 @@ declare(strict_types=1); * - Alle neuen Routen sollten über den Switch-Block am Ende ergänzt werden. */ - -// Eine neue Session wird gestartet und die entsprechende Variable ($_SESSION) angelegt oder eine bestehende wird fortgesetzt. +// Eine neue Session wird gestartet und die entsprechende Variable ($_SESSION) angelegt +// oder eine bestehende wird fortgesetzt. session_start(); -// PHP-Fehler nur ins Log schreiben, nicht direkt im Browser anzeigen +// PHP-Fehler vollständig erfassen, aber nicht im Browser anzeigen. +// Technische Details gehen in den LoggingService. error_reporting(E_ALL); ini_set('display_errors', '0'); @@ -35,7 +36,7 @@ ini_set('display_errors', '0'); */ spl_autoload_register( static function (string $class): void { - $prefix = 'App\\'; + $prefix = 'App\\'; $baseDir = __DIR__ . '/../app/'; $len = strlen($prefix); @@ -44,7 +45,7 @@ spl_autoload_register( } $relativeClass = substr($class, $len); - $file = $baseDir . str_replace('\\', DIRECTORY_SEPARATOR, $relativeClass) . '.php'; + $file = $baseDir . str_replace('\\', DIRECTORY_SEPARATOR, $relativeClass) . '.php'; if (file_exists($file) === true) { require $file; @@ -52,11 +53,11 @@ spl_autoload_register( } ); +// Layout-Funktion einbinden (renderLayout) require __DIR__ . '/views/layout.php'; // Die Konfigurationsdatei liefert ein assoziatives Array mit den Teilbereichen -// "ldap", "snmp" und "security" (u. a. Session-Keys, Timeout-Einstellungen, OIDs). - +// "ldap", "snmp", "security" und "logging" (u. a. Session-Keys, Timeout-Einstellungen, OIDs, Log-Pfade). $configPath = __DIR__ . '/../config/config.php'; if (file_exists($configPath) === false) { // Fail fast: ohne Konfiguration macht die App keinen Sinn @@ -112,7 +113,7 @@ set_error_handler( ); set_exception_handler( - static function (Throwable $exception) use ($globalLogger): void { + static function (\Throwable $exception) use ($globalLogger): void { $globalLogger->logException( 'Unbehandelte Exception in der Anwendung.', $exception, @@ -158,20 +159,24 @@ function handleResult(?array $result): void return; } + // Redirect-Result if (isset($result['redirect']) === true) { - header('Location: ' . $result['redirect']); + header('Location: ' . (string)$result['redirect']); exit; } + // View-Result $contentView = (string)($result['view'] ?? ''); $viewData = (array)($result['data'] ?? []); + // Standard: Wir gehen davon aus, dass es KEINE Loginseite ist, // außer der Controller sagt explizit etwas anderes. - if (!array_key_exists('loginPage', $viewData)) { + if (array_key_exists('loginPage', $viewData) === false) { $viewData['loginPage'] = false; } - $pageTitle = (string)($result['pageTitle'] ?? ''); - $activeMenu = $result['activeMenu'] ?? null; + + $pageTitle = (string)($result['pageTitle'] ?? ''); + $activeMenu = $result['activeMenu'] ?? null; if ($contentView === '' || file_exists($contentView) === false) { http_response_code(500); @@ -180,30 +185,33 @@ function handleResult(?array $result): void } // Hier rufen wir jetzt die Layout-Funktion aus layout.php auf - renderLayout($contentView, $viewData, $pageTitle, is_string($activeMenu) ? $activeMenu : null); + renderLayout( + $contentView, + $viewData, + $pageTitle, + is_string($activeMenu) ? $activeMenu : null + ); } // Zentrale Controller der Anwendung initialisieren und ihnen die vollständige Konfiguration übergeben. // Die Controller holen sich daraus bei Bedarf ihre spezifischen Teilkonfigurationen (z. B. "ldap" oder "snmp"). - -$authController = new AuthController($config); -$dashboardController = new DashboardController($config); +// Jeder Controller erzeugt intern seinen eigenen LoggingService aus $config['logging']. +$authController = new AuthController($config); +$dashboardController = new DashboardController($config); $userManagementController = new UserManagementController($config); // Route aus dem Query-Parameter lesen. Standardroute ist "login", // sodass nicht angemeldete Benutzer automatisch auf die Login-Seite geführt werden. - $route = $_GET['route'] ?? 'login'; // Einfache Router-Logik: Jede Route ruft eine Controller-Methode auf und // übergibt deren View-Result an handleResult(). Neue Seiten werden hier ergänzt. - switch ($route) { case 'login': // Login-Formular anzeigen (ggf. mit Fehlermeldung) $result = $authController->showLoginForm(); handleResult($result); - break; + break; case 'login.submit': if ($_SERVER['REQUEST_METHOD'] !== 'POST') { @@ -237,5 +245,3 @@ switch ($route) { echo 'Route nicht gefunden.'; break; } - -