LDAP Connection URI angepasst (#21)

Reviewed-on: https://git.eckertplayground.de/taarly/PHP_AdminTool_Projekt/pulls/21
This commit is contained in:
blaerf 2025-12-05 08:24:36 +00:00
parent 3c2c6d6c6f
commit 4127323530

View File

@ -19,11 +19,12 @@ declare(strict_types=1);
* - Alle neuen Routen sollten über den Switch-Block am Ende ergänzt werden. * - Alle neuen Routen sollten über den Switch-Block am Ende ergänzt werden.
*/ */
// Eine neue Session wird gestartet und die entsprechende Variable ($_SESSION) angelegt
// Eine neue Session wird gestartet und die entsprechende Variable ($_SESSION) angelegt oder eine bestehende wird fortgesetzt. // oder eine bestehende wird fortgesetzt.
session_start(); 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); error_reporting(E_ALL);
ini_set('display_errors', '0'); ini_set('display_errors', '0');
@ -52,11 +53,11 @@ spl_autoload_register(
} }
); );
// Layout-Funktion einbinden (renderLayout)
require __DIR__ . '/views/layout.php'; require __DIR__ . '/views/layout.php';
// Die Konfigurationsdatei liefert ein assoziatives Array mit den Teilbereichen // 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'; $configPath = __DIR__ . '/../config/config.php';
if (file_exists($configPath) === false) { if (file_exists($configPath) === false) {
// Fail fast: ohne Konfiguration macht die App keinen Sinn // Fail fast: ohne Konfiguration macht die App keinen Sinn
@ -112,7 +113,7 @@ set_error_handler(
); );
set_exception_handler( set_exception_handler(
static function (Throwable $exception) use ($globalLogger): void { static function (\Throwable $exception) use ($globalLogger): void {
$globalLogger->logException( $globalLogger->logException(
'Unbehandelte Exception in der Anwendung.', 'Unbehandelte Exception in der Anwendung.',
$exception, $exception,
@ -158,18 +159,22 @@ function handleResult(?array $result): void
return; return;
} }
// Redirect-Result
if (isset($result['redirect']) === true) { if (isset($result['redirect']) === true) {
header('Location: ' . $result['redirect']); header('Location: ' . (string)$result['redirect']);
exit; exit;
} }
// View-Result
$contentView = (string)($result['view'] ?? ''); $contentView = (string)($result['view'] ?? '');
$viewData = (array)($result['data'] ?? []); $viewData = (array)($result['data'] ?? []);
// Standard: Wir gehen davon aus, dass es KEINE Loginseite ist, // Standard: Wir gehen davon aus, dass es KEINE Loginseite ist,
// außer der Controller sagt explizit etwas anderes. // außer der Controller sagt explizit etwas anderes.
if (!array_key_exists('loginPage', $viewData)) { if (array_key_exists('loginPage', $viewData) === false) {
$viewData['loginPage'] = false; $viewData['loginPage'] = false;
} }
$pageTitle = (string)($result['pageTitle'] ?? ''); $pageTitle = (string)($result['pageTitle'] ?? '');
$activeMenu = $result['activeMenu'] ?? null; $activeMenu = $result['activeMenu'] ?? null;
@ -180,24 +185,27 @@ function handleResult(?array $result): void
} }
// Hier rufen wir jetzt die Layout-Funktion aus layout.php auf // 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. // 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"). // Die Controller holen sich daraus bei Bedarf ihre spezifischen Teilkonfigurationen (z. B. "ldap" oder "snmp").
// Jeder Controller erzeugt intern seinen eigenen LoggingService aus $config['logging'].
$authController = new AuthController($config); $authController = new AuthController($config);
$dashboardController = new DashboardController($config); $dashboardController = new DashboardController($config);
$userManagementController = new UserManagementController($config); $userManagementController = new UserManagementController($config);
// Route aus dem Query-Parameter lesen. Standardroute ist "login", // Route aus dem Query-Parameter lesen. Standardroute ist "login",
// sodass nicht angemeldete Benutzer automatisch auf die Login-Seite geführt werden. // sodass nicht angemeldete Benutzer automatisch auf die Login-Seite geführt werden.
$route = $_GET['route'] ?? 'login'; $route = $_GET['route'] ?? 'login';
// Einfache Router-Logik: Jede Route ruft eine Controller-Methode auf und // Einfache Router-Logik: Jede Route ruft eine Controller-Methode auf und
// übergibt deren View-Result an handleResult(). Neue Seiten werden hier ergänzt. // übergibt deren View-Result an handleResult(). Neue Seiten werden hier ergänzt.
switch ($route) { switch ($route) {
case 'login': case 'login':
// Login-Formular anzeigen (ggf. mit Fehlermeldung) // Login-Formular anzeigen (ggf. mit Fehlermeldung)
@ -237,5 +245,3 @@ switch ($route) {
echo 'Route nicht gefunden.'; echo 'Route nicht gefunden.';
break; break;
} }