diagnostics(); $serviceResult = $ldap->testServiceBind(); $messages = []; $errors = []; $form = ['username' => '', 'password' => '', 'new_password' => '']; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $action = (string) ($_POST['action'] ?? ''); $form['username'] = trim((string) ($_POST['username'] ?? '')); $form['password'] = (string) ($_POST['password'] ?? ''); $form['new_password'] = (string) ($_POST['new_password'] ?? ''); if ($form['username'] === '') { $errors[] = 'Benutzername ist erforderlich.'; } if ($form['password'] === '') { $errors[] = 'Passwort ist erforderlich.'; } if ($action === 'change-password' && strlen($form['new_password']) < 12) { $errors[] = 'Das neue Passwort muss mindestens 12 Zeichen lang sein.'; } if ($errors === []) { if ($action === 'test-login') { $result = $ldap->testUserCredentials($form['username'], $form['password']); if ($result['success'] ?? false) { $messages[] = $result['message'] . ' DN: ' . (string) ($result['dn'] ?? ''); } else { $errors[] = (string) ($result['message'] ?? 'LDAP-Login fehlgeschlagen.'); } } elseif ($action === 'change-password') { $loginCheck = $ldap->testUserCredentials($form['username'], $form['password']); if (!(bool) ($loginCheck['success'] ?? false)) { $errors[] = 'Der Login mit aktuellem Passwort ist fehlgeschlagen: ' . (string) ($loginCheck['message'] ?? ''); } else { $result = $ldap->updateUserPassword($form['username'], $form['new_password']); if ($result['success'] ?? false) { $messages[] = $result['message'] . ' DN: ' . (string) ($result['dn'] ?? ''); $form['password'] = ''; $form['new_password'] = ''; } else { $errors[] = (string) ($result['message'] ?? 'Passwortänderung fehlgeschlagen.'); } } } } } ?> LDAP-Test