168 lines
6.4 KiB
HTML
168 lines
6.4 KiB
HTML
{% extends "base.html" %}
|
|
{% block content %}
|
|
|
|
<h2>Users</h2>
|
|
|
|
{% if current_user.is_admin %}
|
|
<!-- Button Neues User-Popup -->
|
|
<button class="btn btn-success mb-3" data-bs-toggle="modal" data-bs-target="#userModal" onclick="openUserModal()">Neuen Benutzer</button>
|
|
{% endif %}
|
|
|
|
<table class="table table-bordered custom-table">
|
|
<thead>
|
|
<tr>
|
|
<th class="col-ip">Username</th>
|
|
<th class="col-ip">Rolle</th>
|
|
{% if current_user.is_admin %}<th>Aktionen</th>{% endif %}
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for u in users %}
|
|
<tr>
|
|
<td class="col-small">{{ u['username'] }}</td>
|
|
<td class="col-small">{% if u['is_admin'] %}Admin{% else %}User{% endif %}</td>
|
|
{% if current_user.is_admin %}
|
|
<td class="custom-actions d-flex gap-1 align-items-center">
|
|
<!-- Rolle ändern -->
|
|
<button class="btn btn-primary btn-sm" data-bs-toggle="modal"
|
|
data-bs-target="#roleModal"
|
|
onclick="openRoleModal({{ u['id'] }}, '{{ u['username'] }}', {{ u['is_admin'] }})">
|
|
Rolle ändern
|
|
</button>
|
|
|
|
<!-- Passwort ändern -->
|
|
<button class="btn btn-warning btn-sm" data-bs-toggle="modal"
|
|
data-bs-target="#passwordModal"
|
|
onclick="openPasswordModal({{ u['id'] }}, '{{ u['username'] }}')">
|
|
Passwort ändern
|
|
</button>
|
|
|
|
<!-- Benutzer löschen -->
|
|
<form method="post" style="display:inline;">
|
|
<button name="delete_user" value="{{ u['id'] }}" class="btn btn-danger btn-sm"
|
|
onclick="return confirm('Willst du den Benutzer wirklich löschen?');">Löschen</button>
|
|
</form>
|
|
</td>
|
|
{% endif %}
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
|
|
<!-- Modals bleiben unverändert -->
|
|
<!-- Modal für neuen Benutzer -->
|
|
<div class="modal fade" id="userModal" tabindex="-1" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<form method="post" id="userForm">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">Neuen Benutzer anlegen</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="mb-3">
|
|
<label>Username</label>
|
|
<input type="text" name="username" class="form-control" required>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label>Passwort</label>
|
|
<input type="password" name="password" class="form-control" required>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label>Rolle</label>
|
|
<select name="is_admin" class="form-control">
|
|
<option value="0">User</option>
|
|
<option value="1">Admin</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="submit" name="add_user" value="1" class="btn btn-success">Benutzer anlegen</button>
|
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Abbrechen</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Modal für Rolle ändern -->
|
|
<div class="modal fade" id="roleModal" tabindex="-1" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<form method="post" id="roleForm">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">Rolle ändern</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<input type="hidden" name="user_id" id="role_user_id">
|
|
<div class="mb-3">
|
|
<label>Username</label>
|
|
<input type="text" name="username" id="role_username" class="form-control" required>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label>Rolle</label>
|
|
<select name="is_admin" id="role_is_admin" class="form-control">
|
|
<option value="0">User</option>
|
|
<option value="1">Admin</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="submit" name="change_role" value="1" class="btn btn-primary">Rolle ändern</button>
|
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Abbrechen</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Modal für Passwort ändern -->
|
|
<div class="modal fade" id="passwordModal" tabindex="-1" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<form method="post" id="passwordForm">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">Passwort ändern</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<input type="hidden" name="user_id" id="password_user_id">
|
|
<div class="mb-3">
|
|
<label>Username</label>
|
|
<input type="text" name="username" id ="password_username" class="form-control" readonly>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label>Neues Passwort</label>
|
|
<input type="password" name="new_password" class="form-control" required>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="submit" name="change_password" value="1" class="btn btn-warning">Passwort ändern</button>
|
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Abbrechen</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
function openUserModal() {
|
|
document.getElementById('userForm').reset();
|
|
}
|
|
|
|
function openRoleModal(user_id, username, is_admin) {
|
|
document.getElementById('role_user_id').value = user_id;
|
|
document.getElementById('role_username').value = username;
|
|
document.getElementById('role_is_admin').value = is_admin;
|
|
}
|
|
|
|
function openPasswordModal(user_id, username) {
|
|
document.getElementById('password_user_id').value = user_id;
|
|
document.getElementById('password_username').value = username;
|
|
document.querySelector("#passwordForm input[name='new_password']").value = "";
|
|
}
|
|
</script>
|
|
|
|
{% endblock %}
|