From 78901adae192dd4c9fd1f344308c675b0448dd16 Mon Sep 17 00:00:00 2001 From: taarly Date: Sat, 13 Dec 2025 13:51:17 +0000 Subject: [PATCH] revert f2a09c9c7dadc3c03e2982c144f428edcf5bc300 revert Changed User-Import, added User Search and manuel user add --- app/Controllers/UserManagementController.php | 211 ------------------- public/index.php | 38 ---- public/views/partials/sidebar.php | 17 -- public/views/users.php | 5 - public/views/users_create.php | 52 ----- public/views/users_import.php | 55 ----- public/views/users_search.php | 48 ----- 7 files changed, 426 deletions(-) delete mode 100644 public/views/users_create.php delete mode 100644 public/views/users_import.php delete mode 100644 public/views/users_search.php diff --git a/app/Controllers/UserManagementController.php b/app/Controllers/UserManagementController.php index 2260648..9e35640 100644 --- a/app/Controllers/UserManagementController.php +++ b/app/Controllers/UserManagementController.php @@ -100,215 +100,4 @@ class UserManagementController 'activeMenu' => 'users', ]; } - - /** - * Zeigt das Formular zum Anlegen eines neuen Benutzers (Platzhalter). - * @return array - */ - public function create(): array - { - // CSRF token sicherstellen - if (empty($_SESSION['csrf_token'])) { - $_SESSION['csrf_token'] = bin2hex(random_bytes(16)); - } - - $viewPath = __DIR__ . '/../../public/views/users_create.php'; - - return [ - 'view' => $viewPath, - 'data' => [ - 'loginPage' => false, - 'csrf_token' => $_SESSION['csrf_token'], - ], - 'pageTitle' => 'Benutzer hinzufügen', - 'activeMenu' => 'users', - 'activeSubMenu' => 'create', - ]; - } - - /** - * Verarbeitet das Absenden des 'Benutzer hinzufügen'-Formulars (Platzhalter, - * führt keine LDAP-Änderung aus, validiert aber Eingaben). - * - * @return array - */ - public function createSubmit(): array - { - $errors = []; - - // CSRF prüfen - $token = $_POST['csrf_token'] ?? ''; - if (empty($token) || !isset($_SESSION['csrf_token']) || hash_equals($_SESSION['csrf_token'], $token) === false) { - $errors[] = 'Ungültiger CSRF-Token.'; - } - - $username = trim((string)($_POST['username'] ?? '')); - $firstname = trim((string)($_POST['givenName'] ?? '')); - $lastname = trim((string)($_POST['sn'] ?? '')); - $email = trim((string)($_POST['mail'] ?? '')); - - if ($username === '') { - $errors[] = 'Benutzername wird benötigt.'; - } - if ($email !== '' && filter_var($email, FILTER_VALIDATE_EMAIL) === false) { - $errors[] = 'E-Mail-Adresse ist ungültig.'; - } - - // Für jetzt nur eine Erfolgsmeldung (keine AD-Operation) - $viewPath = __DIR__ . '/../../public/views/users_create.php'; - - $data = [ - 'loginPage' => false, - 'csrf_token' => $_SESSION['csrf_token'], - ]; - - if (!empty($errors)) { - $data['errors'] = $errors; - $data['form'] = [ - 'username' => $username, - 'givenName' => $firstname, - 'sn' => $lastname, - 'mail' => $email, - ]; - - return [ - 'view' => $viewPath, - 'data' => $data, - 'pageTitle' => 'Benutzer hinzufügen', - 'activeMenu' => 'users', - 'activeSubMenu' => 'create', - ]; - } - - $data['success'] = 'Benutzer-Formular erfolgreich validiert (Platzhalter, wurde nicht angelegt).'; - $data['form'] = ['username' => $username]; - - return [ - 'view' => $viewPath, - 'data' => $data, - 'pageTitle' => 'Benutzer hinzufügen', - 'activeMenu' => 'users', - 'activeSubMenu' => 'create', - ]; - } - - /** - * Zeigt das CSV-Import-Formular (Platzhalter). - * @return array - */ - public function import(): array - { - // CSRF token sicherstellen - if (empty($_SESSION['csrf_token'])) { - $_SESSION['csrf_token'] = bin2hex(random_bytes(16)); - } - - $viewPath = __DIR__ . '/../../public/views/users_import.php'; - - return [ - 'view' => $viewPath, - 'data' => [ - 'loginPage' => false, - 'csrf_token' => $_SESSION['csrf_token'], - ], - 'pageTitle' => 'Benutzer importieren (CSV)', - 'activeMenu' => 'users', - 'activeSubMenu' => 'import', - ]; - } - - /** - * Verarbeitet CSV-Upload und zeigt eine Vorschau der ersten Zeilen (Platzhalter). - * - * @return array - */ - public function importSubmit(): array - { - $errors = []; - - // CSRF prüfen - $token = $_POST['csrf_token'] ?? ''; - if (empty($token) || !isset($_SESSION['csrf_token']) || hash_equals($_SESSION['csrf_token'], $token) === false) { - $errors[] = 'Ungültiger CSRF-Token.'; - } - - if (!isset($_FILES['csv_file']) || $_FILES['csv_file']['error'] !== UPLOAD_ERR_OK) { - $errors[] = 'Bitte eine gültige CSV-Datei hochladen.'; - } - - $preview = []; - if (empty($errors)) { - $tmp = $_FILES['csv_file']['tmp_name']; - if (($handle = fopen($tmp, 'r')) !== false) { - $row = 0; - while (($data = fgetcsv($handle, 0, ',')) !== false && $row < 50) { - $preview[] = $data; - $row++; - } - fclose($handle); - } else { - $errors[] = 'Die hochgeladene Datei konnte nicht gelesen werden.'; - } - } - - $viewPath = __DIR__ . '/../../public/views/users_import.php'; - - $data = [ - 'loginPage' => false, - 'csrf_token' => $_SESSION['csrf_token'], - ]; - - if (!empty($errors)) { - $data['errors'] = $errors; - } else { - $data['preview'] = $preview; - $data['success'] = 'CSV-Datei erfolgreich hochgeladen. Vorschau der ersten Zeilen:'; - } - - return [ - 'view' => $viewPath, - 'data' => $data, - 'pageTitle' => 'Benutzer importieren (CSV)', - 'activeMenu' => 'users', - 'activeSubMenu' => 'import', - ]; - } - - /** - * Zeigt die Benutzersuche (Platzhalter). - * @return array - */ - public function search(): array - { - $query = trim((string)($_GET['q'] ?? '')); - - $users = []; - if ($query !== '') { - try { - $allUsers = $this->directoryService->getUsers(); - foreach ($allUsers as $u) { - $hay = strtolower($u['samaccountname'] . ' ' . $u['displayname'] . ' ' . $u['mail']); - if (strpos($hay, strtolower($query)) !== false) { - $users[] = $u; - } - } - } catch (\Throwable $e) { - $this->logger->logException('Fehler bei Benutzersuche.', $e, ['query' => $query]); - } - } - - $viewPath = __DIR__ . '/../../public/views/users_search.php'; - - return [ - 'view' => $viewPath, - 'data' => [ - 'loginPage' => false, - 'query' => $query, - 'results' => $users, - ], - 'pageTitle' => 'Benutzer suchen', - 'activeMenu' => 'users', - 'activeSubMenu' => 'search', - ]; - } } diff --git a/public/index.php b/public/index.php index 85d960d..70dbe3c 100644 --- a/public/index.php +++ b/public/index.php @@ -240,44 +240,6 @@ switch ($route) { handleResult($result); break; - case 'users.create': - requireLogin($config); - $result = $userManagementController->create(); - handleResult($result); - break; - - case 'users.create.submit': - requireLogin($config); - if ($_SERVER['REQUEST_METHOD'] !== 'POST') { - header('Location: index.php?route=users.create'); - exit; - } - $result = $userManagementController->createSubmit(); - handleResult($result); - break; - - case 'users.import': - requireLogin($config); - $result = $userManagementController->import(); - handleResult($result); - break; - - case 'users.import.submit': - requireLogin($config); - if ($_SERVER['REQUEST_METHOD'] !== 'POST') { - header('Location: index.php?route=users.import'); - exit; - } - $result = $userManagementController->importSubmit(); - handleResult($result); - break; - - case 'users.search': - requireLogin($config); - $result = $userManagementController->search(); - handleResult($result); - break; - default: http_response_code(404); echo 'Route nicht gefunden.'; diff --git a/public/views/partials/sidebar.php b/public/views/partials/sidebar.php index 79451ec..ea97dd7 100644 --- a/public/views/partials/sidebar.php +++ b/public/views/partials/sidebar.php @@ -49,23 +49,6 @@ Benutzer & Gruppen - - - - - diff --git a/public/views/users.php b/public/views/users.php index 644df23..e95e779 100644 --- a/public/views/users.php +++ b/public/views/users.php @@ -25,11 +25,6 @@ declare(strict_types=1); diff --git a/public/views/users_create.php b/public/views/users_create.php deleted file mode 100644 index 53d30f8..0000000 --- a/public/views/users_create.php +++ /dev/null @@ -1,52 +0,0 @@ - -
-
-
Benutzer hinzufügen
-
-
- -
-
    - -
  • - -
-
- - - -
- - -
- - -
- - -
-
- - -
-
- - -
-
- - -
- - - Zurück zur Liste -
-
-
diff --git a/public/views/users_import.php b/public/views/users_import.php deleted file mode 100644 index c9b57ab..0000000 --- a/public/views/users_import.php +++ /dev/null @@ -1,55 +0,0 @@ - -
-
-
Benutzer importieren (CSV)
-
-
- -
-
    - -
  • - -
-
- - - -
- - -
- -
- - -
- - Zurück zur Liste -
- - -
Vorschau (erste Zeilen)
-
- - - - - - - - - - -
-
- -
-
diff --git a/public/views/users_search.php b/public/views/users_search.php deleted file mode 100644 index ff20133..0000000 --- a/public/views/users_search.php +++ /dev/null @@ -1,48 +0,0 @@ - -
-
-
Benutzer suchen
-
-
-
- -
- - -
- - Zurück zur Liste -
- - -
Ergebnisse für ""
- -
- - - - - - - - - - - - - -
BenutzernameNameE-Mail
-
- -
Keine Treffer gefunden.
- - -
-