$config */ $config = require $configPath; use App\Controllers\AuthController; use App\Controllers\DashboardController; use App\Controllers\UserManagementController; // Hilfsfunktion für geschützte Routen function requireLogin(array $config): void { // session_key_user aus dem Config-Array lesen. Wenn nicht gesetzt oder null, Standard "admin_user" verwenden. $sessionKey = $config['security']['session_key_user'] ?? 'admin_user'; // Prüfen, ob in $_SESSION unter diesem Key ein eingeloggter Benutzer hinterlegt ist. // Falls nicht, zurück zur Login-Seite umleiten. if (isset($_SESSION[$sessionKey]) === false) { header('Location: index.php?route=login'); exit; } } // Route aus dem GET-Parameter lesen. Wenn nicht gesetzt, Standardroute "login" verwenden. $route = $_GET['route'] ?? 'login'; // Neue Instanz der Klasse AuthController erstellen (wird bei Bedarf über den Autoloader geladen). $authController = new AuthController($config); // Neue Instanz der Klasse DashboardController erstellen (wird bei Bedarf über den Autoloader geladen). $dashboardController = new DashboardController($config); // Neue Instanz der Klasse UserManagmentController erstellen (wird bei Bedarf über den Autoloader geladen). $userManagementController = new UserManagementController($config); // Anhand des Routing-Ziels (route) entscheiden, welcher Code ausgeführt wird. switch ($route) { case 'login': $authController->showLoginForm(); break; case 'login.submit': if ($_SERVER['REQUEST_METHOD'] !== 'POST') { header('Location: index.php?route=login'); exit; } $authController->processLogin(); break; case 'logout': $authController->logout(); break; case 'dashboard': requireLogin($config); $dashboardController->show(); break; case 'users': requireLogin($config); $userManagementController->show(); break; case 'users.import': requireLogin($config); $userManagementController->showCsvImport(); break; default: http_response_code(404); echo 'Route nicht gefunden.'; break; }