Vollständige Anwendungskonfiguration (aus config.php) */ private array $config; /** @var LdapDirectoryService Service für das Lesen von Benutzern und Gruppen aus dem LDAP/AD */ private LdapDirectoryService $directoryService; /** @var LoggingService Logger für technische Fehler */ private LoggingService $logger; /** * @param array $config Vollständige Konfiguration aus config.php */ public function __construct(array $config) { // Komplette Konfiguration speichern (falls später weitere Werte benötigt werden). $this->config = $config; // LDAP-Konfiguration aus der Gesamt-Konfiguration herausziehen. $ldapConfig = $config['ldap'] ?? []; // Directory-Service initialisieren, der die eigentliche LDAP-Arbeit übernimmt. $this->directoryService = new LdapDirectoryService($ldapConfig); // Logging-Service initialisieren. $this->logger = new LoggingService($config['logging'] ?? []); } /** * Zeigt Benutzer- und Gruppenliste an. * Wird typischerweise über die Route "users" (index.php?route=users) aufgerufen. * * @return array View-Result für das zentrale Layout */ public function show(): array { // Standardwerte für die View-Variablen vorbereiten. $error = null; $users = []; $groups = []; try { // Benutzer- und Gruppenlisten aus dem AD laden. $users = $this->directoryService->getUsers(); $groups = $this->directoryService->getGroups(); } catch (Throwable $exception) { // Technische Details ins Log, für den Benutzer eine allgemeine Meldung. $this->logger->logException( 'Fehler beim Laden von Benutzern/Gruppen.', $exception, [ 'route' => 'users', 'remote_addr' => $_SERVER['REMOTE_ADDR'] ?? null, ] ); $error = 'Fehler beim Laden von Benutzern/Gruppen. ' . 'Bitte versuchen Sie es später erneut oder wenden Sie sich an den Administrator.'; } // Pfad zur eigentlichen View-Datei bestimmen. $viewPath = __DIR__ . '/../../public/views/users.php'; return [ 'view' => $viewPath, 'data' => [ // Die View erwartet aktuell $users, $groups, $error. 'users' => $users, 'groups' => $groups, 'error' => $error, 'loginPage' => false, ], 'pageTitle' => 'Benutzer & Gruppen', 'activeMenu' => 'users', ]; } }