QueryBuilder/app/templates/admin/create_user.html
DGSoft f176560c02 Add comprehensive admin panel with user management
Features added:
- Admin authentication system with is_admin field
- Complete admin dashboard with user statistics
- User management (create, edit, delete, toggle admin)
- Protected admin routes with @admin_required decorator
- Security features (prevent self-deletion, last admin protection)
- Responsive admin UI with Bootstrap integration
- Database migration script for admin field
- Admin navigation link for authorized users

Technical improvements:
- Enhanced 3-column dashboard layout (tables | editor | saved queries)
- Removed plus button and made right sidebar more compact
- Admin user (admin/admin123) automatically created with admin privileges
- Full CRUD operations for user management
- Flash messages for user feedback
- Form validation and error handling
2025-10-14 21:33:11 +02:00

88 lines
4.3 KiB
HTML

{% extends "base.html" %}
{% block title %}Neuen Benutzer erstellen{% endblock %}
{% block content %}
<div class="container">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="d-flex justify-content-between align-items-center mb-4">
<h2><i class="fas fa-user-plus"></i> Neuen Benutzer erstellen</h2>
<a href="{{ url_for('admin.users') }}" class="btn btn-outline-secondary">
<i class="fas fa-arrow-left"></i> Zurück
</a>
</div>
<div class="card">
<div class="card-body">
<form method="POST">
<div class="mb-3">
<label for="username" class="form-label">
<i class="fas fa-user"></i> Benutzername *
</label>
<input type="text" class="form-control" id="username" name="username"
required maxlength="80" placeholder="z.B. john.doe">
<div class="form-text">Der Benutzername muss eindeutig sein</div>
</div>
<div class="mb-3">
<label for="email" class="form-label">
<i class="fas fa-envelope"></i> E-Mail-Adresse *
</label>
<input type="email" class="form-control" id="email" name="email"
required maxlength="120" placeholder="john.doe@example.com">
<div class="form-text">Die E-Mail-Adresse muss eindeutig sein</div>
</div>
<div class="mb-3">
<label for="password" class="form-label">
<i class="fas fa-lock"></i> Passwort *
</label>
<input type="password" class="form-control" id="password" name="password"
required minlength="6" placeholder="Mindestens 6 Zeichen">
<div class="form-text">Mindestens 6 Zeichen erforderlich</div>
</div>
<div class="mb-4">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="is_admin" name="is_admin">
<label class="form-check-label" for="is_admin">
<i class="fas fa-user-shield text-danger"></i> Administrator-Rechte gewähren
</label>
<div class="form-text">
Administratoren können andere Benutzer verwalten und haben Vollzugriff
</div>
</div>
</div>
<div class="d-grid gap-2">
<button type="submit" class="btn btn-success">
<i class="fas fa-user-plus"></i> Benutzer erstellen
</button>
<a href="{{ url_for('admin.users') }}" class="btn btn-outline-secondary">
<i class="fas fa-times"></i> Abbrechen
</a>
</div>
</form>
</div>
</div>
<!-- Hinweise -->
<div class="card mt-4">
<div class="card-header">
<h6><i class="fas fa-info-circle"></i> Wichtige Hinweise</h6>
</div>
<div class="card-body">
<ul class="mb-0">
<li>Alle mit * markierten Felder sind Pflichtfelder</li>
<li>Der Benutzername und die E-Mail-Adresse müssen eindeutig sein</li>
<li>Das Passwort sollte sicher gewählt werden</li>
<li>Administrator-Rechte gewähren Vollzugriff auf alle Funktionen</li>
<li>Neue Benutzer können sich sofort mit ihren Anmeldedaten einloggen</li>
</ul>
</div>
</div>
</div>
</div>
</div>
{% endblock %}