feature/logging_Service #16
@ -70,17 +70,9 @@ function requireLogin(array $config): void
|
||||
}
|
||||
|
||||
/**
|
||||
* Hilfsfunktion: Ergebnis-Array eines Controllers nehmen und das Layout rendern.
|
||||
* Verarbeitet ein View-Result oder Redirect-Result.
|
||||
*
|
||||
* Erwartetes Format im $result-Array:
|
||||
* [
|
||||
* 'view' => string, // Pfad zur Content-View (z. B. public/views/dashboard.php)
|
||||
* 'data' => array<string, mixed> // Daten für die View
|
||||
* 'pageTitle' => string, // Seitentitel
|
||||
* 'activeMenu' => string|null, // Menükennung für Sidebar (z. B. 'dashboard' oder 'users')
|
||||
* ]
|
||||
*
|
||||
* @param array<string, mixed> $result
|
||||
* @param array<string, mixed>|null $result
|
||||
*/
|
||||
function handleResult(?array $result): void
|
||||
{
|
||||
@ -118,44 +110,36 @@ $route = $_GET['route'] ?? 'login';
|
||||
|
||||
switch ($route) {
|
||||
case 'login':
|
||||
// Wenn bereits eingeloggt, direkt zum Dashboard
|
||||
$sessionKey = $config['security']['session_key_user'] ?? 'admin_user';
|
||||
if (isset($_SESSION[$sessionKey]) === true) {
|
||||
header('Location: index.php?route=dashboard');
|
||||
exit;
|
||||
}
|
||||
|
||||
// Controller liefert View-Definition + Daten
|
||||
// Login-Formular anzeigen (ggf. mit Fehlermeldung)
|
||||
$result = $authController->showLoginForm();
|
||||
renderLayout($result);
|
||||
handleResult($result);
|
||||
break;
|
||||
|
||||
case 'login.submit':
|
||||
// POST-Login wird im Controller verarbeitet.
|
||||
// Der Controller entscheidet, ob er redirectet oder ein View-Ergebnis zurückgibt.
|
||||
$result = $authController->processLogin();
|
||||
if ($result !== null) {
|
||||
// z. B. bei Login-Fehler: Login-Seite mit Fehlermeldung anzeigen
|
||||
renderLayout($result);
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
||||
// Falscher HTTP-Verb: einfach zurück zum Login
|
||||
header('Location: index.php?route=login');
|
||||
exit;
|
||||
}
|
||||
// Bei erfolgreichem Login macht der Controller einen Redirect und beendet das Script.
|
||||
$result = $authController->processLogin();
|
||||
handleResult($result);
|
||||
break;
|
||||
|
||||
case 'logout':
|
||||
$authController->logout();
|
||||
// logout() sollte selbst redirecten (z. B. auf route=login)
|
||||
$result = $authController->logout();
|
||||
handleResult($result);
|
||||
break;
|
||||
|
||||
case 'dashboard':
|
||||
requireLogin($config);
|
||||
$result = $dashboardController->show();
|
||||
renderLayout($result);
|
||||
handleResult($result);
|
||||
break;
|
||||
|
||||
case 'users':
|
||||
requireLogin($config);
|
||||
$result = $userManagementController->show();
|
||||
renderLayout($result);
|
||||
handleResult($result);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -164,3 +148,4 @@ switch ($route) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user