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; /** * @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); } /** * 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) { // Sämtliche technischen Fehler (z. B. Verbindungs- oder Konfigurationsprobleme) // werden hier in eine für den Benutzer lesbare Fehlermeldung übersetzt. $error = 'Fehler beim Laden von Benutzern/Gruppen: ' . $exception->getMessage(); } // 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', ]; } }