develop #15
@ -3,6 +3,23 @@
|
||||
// Strenge Typprüfung für Parameter- und Rückgabetypen aktivieren.
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Front-Controller der Webanwendung.
|
||||
*
|
||||
* Aufgaben:
|
||||
* - Startet die Session und initialisiert den Autoloader für den App-Namespace.
|
||||
* - Lädt die zentrale Konfiguration aus config/config.php.
|
||||
* - Instanziiert die Hauptcontroller (Auth, Dashboard, User-Management).
|
||||
* - Steuert das Routing anhand des GET-Parameters "route".
|
||||
* - Leitet View-Result-Arrays an das zentrale Layout (renderLayout) weiter
|
||||
* oder führt Redirects aus.
|
||||
*
|
||||
* WICHTIG:
|
||||
* - Diese Datei ist der einzige öffentliche Einstiegspunkt (Entry Point) der App.
|
||||
* - 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.
|
||||
session_start();
|
||||
|
||||
@ -33,7 +50,9 @@ spl_autoload_register(
|
||||
|
||||
require __DIR__ . '/views/layout.php';
|
||||
|
||||
// Pfad zur Konfigurationsdatei prüfen und Konfiguration laden
|
||||
// Die Konfigurationsdatei liefert ein assoziatives Array mit den Teilbereichen
|
||||
// "ldap", "snmp" und "security" (u. a. Session-Keys, Timeout-Einstellungen, OIDs).
|
||||
|
||||
$configPath = __DIR__ . '/../config/config.php';
|
||||
if (file_exists($configPath) === false) {
|
||||
// Fail fast: ohne Konfiguration macht die App keinen Sinn
|
||||
@ -105,14 +124,21 @@ function handleResult(?array $result): void
|
||||
renderLayout($contentView, $viewData, $pageTitle, is_string($activeMenu) ? $activeMenu : null);
|
||||
}
|
||||
|
||||
// Controller instanziieren
|
||||
// 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);
|
||||
$userManagementController = new UserManagementController($config);
|
||||
|
||||
// Route bestimmen
|
||||
// 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)
|
||||
|
||||
@ -2,6 +2,18 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* View-Template für das Server-Dashboard.
|
||||
*
|
||||
* Aufgaben:
|
||||
* - Visualisiert den vom SnmpServerStatusService gelieferten Serverstatus.
|
||||
* - Zeigt Kennzahlen wie Hostname, Uptime, CPU-Auslastung, RAM-Auslastung
|
||||
* und Belegung der Systempartition "C:" an.
|
||||
*
|
||||
* Erwartete View-Daten:
|
||||
* - array<string, mixed> $serverStatus Assoziatives Array mit Statuswerten (hostname, uptime, cpu_usage, memory_usage, disk_usage_c, last_update).
|
||||
*/
|
||||
|
||||
/** @var array<string, mixed> $serverStatus */
|
||||
?>
|
||||
|
||||
|
||||
@ -26,6 +26,8 @@ function renderLayout(string $contentView, array $viewData, string $pageTitle, ?
|
||||
}
|
||||
}
|
||||
|
||||
// Basispfad für alle Layout-Teilansichten (Head, Sidebar, Topbar, Footer, Scripts).
|
||||
|
||||
$partialsPath = __DIR__ . '/partials';
|
||||
$isLoginPage = !empty($viewData['loginPage']);
|
||||
?>
|
||||
|
||||
@ -1,7 +1,20 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
const LOGIN_PAGE = true;
|
||||
|
||||
/**
|
||||
* View-Template für die Login-Seite des AD Admin Tools.
|
||||
*
|
||||
* Aufgaben:
|
||||
* - Stellt das Anmeldeformular für Administratoren dar.
|
||||
* - Zeigt bei Bedarf eine Fehlermeldung aus der Authentifizierung an.
|
||||
* - Kennzeichnet sich selbst über die Konstante LOGIN_PAGE, damit das Layout
|
||||
* Sidebar und Topbar ausblenden kann.
|
||||
*
|
||||
* Erwartete View-Daten:
|
||||
* - string|null $error Fehlermeldung aus dem AuthController (oder null bei Erfolg).
|
||||
*/
|
||||
|
||||
|
||||
/** @var string|null $error */
|
||||
?>
|
||||
|
||||
@ -1,5 +1,16 @@
|
||||
<?php
|
||||
// public/views/partials/footer.php
|
||||
/**
|
||||
* Partielle View für den Footer-Bereich und das Schließen der Layout-Container.
|
||||
*
|
||||
* Aufgaben:
|
||||
* - Schließt die Container für den Hauptinhalt und den Content-Wrapper.
|
||||
* - Rendert den Sticky-Footer mit einfachem Copyright-Hinweis.
|
||||
* - Schließt die äußeren Wrapper-Elemente des SB-Admin-2-Layouts.
|
||||
*
|
||||
* Hinweis:
|
||||
* - Die JavaScript-Ressourcen werden separat in scripts.php eingebunden.
|
||||
*/
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
@ -1,5 +1,16 @@
|
||||
<?php
|
||||
// public/views/partials/head.php
|
||||
/**
|
||||
* Partielle View für den <head>-Bereich und den Beginn des HTML-Body.
|
||||
*
|
||||
* Aufgaben:
|
||||
* - Setzt Zeichensatz und Dokumenttitel (inkl. optionalem Seitentitel).
|
||||
* - Bindet die CSS-Ressourcen des SB-Admin-2-Templates sowie DataTables ein.
|
||||
* - Öffnet das <body>-Element und den Wrapper für das Layout.
|
||||
*
|
||||
* WICHTIG:
|
||||
* - Diese Datei wird ausschließlich über das zentrale Layout (layout.php) eingebunden.
|
||||
*/
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
@ -1,5 +1,19 @@
|
||||
<?php
|
||||
// public/views/partials/scripts.php
|
||||
/**
|
||||
* Partielle View für alle JavaScript-Assets.
|
||||
*
|
||||
* Aufgaben:
|
||||
* - Stellt den "Scroll to Top"-Button bereit.
|
||||
* - Bindet die JavaScript-Abhängigkeiten des SB-Admin-2-Templates ein
|
||||
* (jQuery, Bootstrap, jQuery-Easing).
|
||||
* - Lädt optionale Plugins wie Chart.js und DataTables.
|
||||
* - Lädt die Demo-Skripte für Charts und Tabellen (js/demo/...).
|
||||
*
|
||||
* Hinweis:
|
||||
* - Diese Datei sollte am Ende des Body-Bereichs über das Layout eingebunden werden,
|
||||
* damit die Seite schnell gerendert wird.
|
||||
*/
|
||||
|
||||
?>
|
||||
<!-- Scroll to Top Button-->
|
||||
<a class="scroll-to-top rounded" href="#page-top">
|
||||
|
||||
@ -1,5 +1,17 @@
|
||||
<?php
|
||||
// public/views/partials/sidebar.php
|
||||
/**
|
||||
* Partielle View für die linke Sidebar-Navigation.
|
||||
*
|
||||
* Aufgaben:
|
||||
* - Zeigt das Branding (Logo + Titel "AD Admin Tool") im oberen Bereich.
|
||||
* - Enthält die Navigationspunkte "Dashboard" und "Benutzer & Gruppen".
|
||||
* - Markiert den aktuell aktiven Menüpunkt anhand der Variable $activeMenu.
|
||||
* - Stellt den Sidebar-Toggler für schmalere Viewports bereit.
|
||||
*
|
||||
* Erwartete View-Daten:
|
||||
* - string|null $activeMenu Kennzeichnung für den aktuell aktiven Eintrag (z. B. 'dashboard' oder 'users').
|
||||
*/
|
||||
|
||||
?>
|
||||
|
||||
<ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar">
|
||||
|
||||
@ -1,5 +1,16 @@
|
||||
<?php
|
||||
// public/views/partials/topbar.php
|
||||
/**
|
||||
* Partielle View für die obere Navigationsleiste (Topbar).
|
||||
*
|
||||
* Aufgaben:
|
||||
* - Stellt den Button zum Ein- und Ausklappen der Sidebar auf mobilen Geräten bereit.
|
||||
* - Zeigt im rechten Bereich die Benutzerinformationen an (Anzeigename + Profilbild).
|
||||
* - Bietet im Benutzer-Dropdown einen Logout-Link an, der die Route "logout" aufruft.
|
||||
*
|
||||
* Erwartete View-Daten:
|
||||
* - string|null $currentUsername Anzeigename des aktuell angemeldeten Benutzers (optional).
|
||||
*/
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
@ -2,6 +2,20 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* View-Template für die Anzeige von Benutzern und Gruppen.
|
||||
*
|
||||
* Aufgaben:
|
||||
* - Stellt zwei Tabellen dar: eine Benutzerliste und eine Gruppenliste.
|
||||
* - Nutzt Daten aus dem LdapDirectoryService (über den UserManagementController).
|
||||
* - Behandelt optionale Fehlermeldungen durch Ausgabe eines Alert-Elements.
|
||||
*
|
||||
* Erwartete View-Daten:
|
||||
* - array<int, array<string, string>> $users Liste von Benutzerobjekten (z. B. sAMAccountName, displayName, mail).
|
||||
* - array<int, array<string, string>> $groups Liste von Gruppenobjekten (z. B. sAMAccountName, cn, description).
|
||||
* - string|null $error Fehlermeldung bei Problemen mit dem LDAP-Zugriff.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @var array<int, array<string, string>> $users
|
||||
* @var array<int, array<string, string>> $groups
|
||||
|
||||
Loading…
Reference in New Issue
Block a user