DecisionTree/templates/admin/manage_users.html

106 lines
6.7 KiB
HTML

{% extends 'base.html' %}
{% block content %}
<div class="container mt-4">
<div class="row mb-4">
<div class="col-md-12">
<div class="card shadow">
<div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
<h6 class="m-0 font-weight-bold text-primary">User Management</h6>
<div>
<a href="{{ url_for('admin.admin_dashboard') }}" class="btn btn-sm btn-outline-primary">
<i class="fas fa-arrow-left"></i> Back to Dashboard
</a>
{% if registration_enabled %}
<a href="{{ url_for('admin.toggle_registration') }}" class="btn btn-sm btn-outline-danger">
<i class="fas fa-user-slash"></i> Disable Registration
</a>
{% else %}
<a href="{{ url_for('admin.toggle_registration') }}" class="btn btn-sm btn-outline-success">
<i class="fas fa-user-plus"></i> Enable Registration
</a>
{% endif %}
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<th>ID</th>
<th>Username</th>
<th>Email</th>
<th>Admin</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{% for user in users %}
<tr>
<td>{{ user.id }}</td>
<td>{{ user.username }}</td>
<td>{{ user.email }}</td>
<td>
{% if user.is_admin %}
<span class="badge bg-success">Yes</span>
{% else %}
<span class="badge bg-secondary">No</span>
{% endif %}
</td>
<td>
<div class="btn-group" role="group">
{% if user.id != current_user.id %}
{% if user.is_admin %}
<a href="{{ url_for('admin.toggle_admin', user_id=user.id) }}" class="btn btn-sm btn-outline-warning">
<i class="fas fa-user-minus"></i> Remove Admin
</a>
{% else %}
<a href="{{ url_for('admin.toggle_admin', user_id=user.id) }}" class="btn btn-sm btn-outline-success">
<i class="fas fa-user-shield"></i> Make Admin
</a>
{% endif %}
<button type="button" class="btn btn-sm btn-outline-danger" data-bs-toggle="modal" data-bs-target="#deleteUserModal{{ user.id }}">
<i class="fas fa-trash"></i> Delete
</button>
<!-- Delete User Modal -->
<div class="modal fade" id="deleteUserModal{{ user.id }}" tabindex="-1" aria-labelledby="deleteUserModalLabel{{ user.id }}" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="deleteUserModalLabel{{ user.id }}">Confirm Delete</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Are you sure you want to delete user <strong>{{ user.username }}</strong>? This action cannot be undone.
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
<form action="{{ url_for('admin.delete_user', user_id=user.id) }}" method="POST">
<button type="submit" class="btn btn-danger">Delete User</button>
</form>
</div>
</div>
</div>
</div>
{% else %}
<span class="text-muted">Current User</span>
{% endif %}
</div>
</td>
</tr>
{% else %}
<tr>
<td colspan="5" class="text-center">No users found.</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}