added another page to create users
This commit is contained in:
parent
d2fcf57559
commit
ab59eb9567
@ -100,4 +100,26 @@ class UserManagementController
|
|||||||
'activeMenu' => 'users',
|
'activeMenu' => 'users',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Zeigt das Formular zum Erstellen eines Benutzers an.
|
||||||
|
* Route: index.php?route=createuser
|
||||||
|
*
|
||||||
|
* @return array<string, mixed>
|
||||||
|
*/
|
||||||
|
public function showCreate(): array
|
||||||
|
{
|
||||||
|
$viewPath = __DIR__ . '/../../public/views/createuser.php';
|
||||||
|
|
||||||
|
return [
|
||||||
|
'view' => $viewPath,
|
||||||
|
'data' => [
|
||||||
|
'error' => null,
|
||||||
|
'success' => null,
|
||||||
|
'loginPage' => false,
|
||||||
|
],
|
||||||
|
'pageTitle' => 'Benutzer erstellen',
|
||||||
|
'activeMenu' => 'createuser',
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -240,6 +240,12 @@ switch ($route) {
|
|||||||
handleResult($result);
|
handleResult($result);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'createuser':
|
||||||
|
requireLogin($config);
|
||||||
|
$result = $userManagementController->showCreate();
|
||||||
|
handleResult($result);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
http_response_code(404);
|
http_response_code(404);
|
||||||
echo 'Route nicht gefunden.';
|
echo 'Route nicht gefunden.';
|
||||||
|
|||||||
140
public/views/createuser.php
Normal file
140
public/views/createuser.php
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* View-Template zur Erstellung von Active-Directory-Benutzern.
|
||||||
|
*
|
||||||
|
* Funktionen:
|
||||||
|
* - Formular zum Anlegen eines einzelnen Benutzers (sAMAccountName, Anzeigename, E-Mail, Passwort, OU, Gruppen).
|
||||||
|
* - Formular zum Hochladen einer CSV-Datei zum Anlegen mehrerer Benutzer.
|
||||||
|
* - Gibt optionalen Erfolg / Fehler aus.
|
||||||
|
*
|
||||||
|
* Erwartete View-Daten:
|
||||||
|
* - string|null $error Fehlermeldung
|
||||||
|
* - string|null $success Erfolgsmeldung
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string|null $error
|
||||||
|
* @var string|null $success
|
||||||
|
*/
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="d-sm-flex align-items-center justify-content-between mb-4">
|
||||||
|
<h1 class="h3 mb-0 text-gray-800">Benutzer erstellen</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php if (!empty($error)): ?>
|
||||||
|
<div class="alert alert-danger" role="alert">
|
||||||
|
<?php echo htmlspecialchars((string)$error, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'); ?>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if (!empty($success)): ?>
|
||||||
|
<div class="alert alert-success" role="alert">
|
||||||
|
<?php echo htmlspecialchars((string)$success, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'); ?>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<p class="mb-4">Hier können Sie einzelne Active-Directory-Benutzer anlegen oder eine CSV-Datei hochladen, um mehrere Benutzer gleichzeitig zu erstellen.</p>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="card shadow mb-4">
|
||||||
|
<div class="card-header py-3">
|
||||||
|
<h6 class="m-0 font-weight-bold text-primary">Einzelner Benutzer</h6>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<form method="post" action="/api/create_user.php">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="samaccountname">Anmeldename (sAMAccountName)</label>
|
||||||
|
<input type="text" class="form-control" id="samaccountname" name="samaccountname" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="displayname">Anzeigename</label>
|
||||||
|
<input type="text" class="form-control" id="displayname" name="displayname">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="mail">E-Mail</label>
|
||||||
|
<input type="email" class="form-control" id="mail" name="mail">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="password">Passwort</label>
|
||||||
|
<input type="password" class="form-control" id="password" name="password" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="ou">Organisationseinheit (OU) — optional</label>
|
||||||
|
<input type="text" class="form-control" id="ou" name="ou" placeholder="OU=Users,DC=example,DC=local">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="groups">Gruppen (kommagetrennt, optional)</label>
|
||||||
|
<input type="text" class="form-control" id="groups" name="groups" placeholder="Domain Users,IT-Staff">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="submit" class="btn btn-primary">Benutzer erstellen</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="card shadow mb-4">
|
||||||
|
<div class="card-header py-3">
|
||||||
|
<h6 class="m-0 font-weight-bold text-primary">Mehrere Benutzer via CSV</h6>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<p class="small text-muted">Die CSV-Datei sollte eine Kopfzeile mit folgenden Spalten enthalten: <code>samaccountname,displayname,mail,password,ou,groups</code>. Gruppen können komma-getrennt sein.</p>
|
||||||
|
|
||||||
|
<form method="post" action="/api/create_users_csv.php" enctype="multipart/form-data">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="csvfile">CSV-Datei</label>
|
||||||
|
<input type="file" class="form-control-file" id="csvfile" name="csvfile" accept=".csv" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="csvdelimiter">Trennzeichen</label>
|
||||||
|
<select class="form-control" id="csvdelimiter" name="csvdelimiter">
|
||||||
|
<option value="," selected>Komma (,)</option>
|
||||||
|
<option value=";">Semikolon (;)</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="hasHeader">Kopfzeile vorhanden?</label>
|
||||||
|
<select class="form-control" id="hasHeader" name="hasHeader">
|
||||||
|
<option value="1" selected>Ja</option>
|
||||||
|
<option value="0">Nein</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="submit" class="btn btn-primary">CSV hochladen und verarbeiten</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="card shadow mb-4">
|
||||||
|
<div class="card-header py-3">
|
||||||
|
<h6 class="m-0 font-weight-bold text-secondary">Hinweise</h6>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<ul>
|
||||||
|
<li>Die tatsächliche Erstellung von AD-Benutzern wird serverseitig durchgeführt. Diese View sendet Daten an die Endpunkte <code>/api/create_user.php</code> und <code>/api/create_users_csv.php</code>.</li>
|
||||||
|
<li>Stellen Sie sicher, dass der Webserver die nötigen Rechte hat und die LDAP/AD-Verbindung korrekt konfiguriert ist.</li>
|
||||||
|
<li>Für Sicherheit: prüfen Sie bitte CSRF-Schutz und Validierung auf der Serverseite.</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php // Ende der View ?>
|
||||||
@ -49,6 +49,13 @@
|
|||||||
<span>Benutzer & Gruppen</span></a>
|
<span>Benutzer & Gruppen</span></a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<!-- Nav Item - Benutzer erstellen -->
|
||||||
|
<li class="nav-item<?= (isset($activeMenu) && $activeMenu === 'createuser') ? ' active' : '' ?>">
|
||||||
|
<a class="nav-link" href="../../index.php?route=createuser">
|
||||||
|
<i class="fas fa-fw fa-user-plus"></i>
|
||||||
|
<span>Benutzer erstellen</span></a>
|
||||||
|
</li>
|
||||||
|
|
||||||
<!-- Divider -->
|
<!-- Divider -->
|
||||||
<hr class="sidebar-divider d-none d-md-block">
|
<hr class="sidebar-divider d-none d-md-block">
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user