2025-03-03 17:50:11 -03:00
|
|
|
{% extends "base.html" %}
|
|
|
|
|
|
|
|
{% block title %}Usuarios - ARCH{% endblock %}
|
|
|
|
|
|
|
|
{% block content %}
|
|
|
|
<div class="container my-5">
|
|
|
|
<div class="d-flex justify-content-between align-items-center mb-4">
|
|
|
|
<h1>Usuarios del Sistema</h1>
|
|
|
|
{% if current_user.has_permission(9000) %}
|
|
|
|
<a href="{{ url_for('users.create') }}" class="btn btn-primary">
|
|
|
|
<i class="fas fa-plus"></i> Nuevo Usuario
|
|
|
|
</a>
|
|
|
|
{% endif %}
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="card">
|
|
|
|
<div class="card-body">
|
|
|
|
<div class="table-responsive">
|
|
|
|
<table class="table table-striped">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th>Usuario</th>
|
|
|
|
<th>Nombre</th>
|
|
|
|
<th>Email</th>
|
|
|
|
<th>Nivel</th>
|
|
|
|
<th>Estado</th>
|
|
|
|
<th>Acciones</th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
2025-03-04 07:46:15 -03:00
|
|
|
{% if users and users|length > 0 %}
|
|
|
|
{% for user in users %}
|
|
|
|
<tr>
|
|
|
|
<td>{{ user.username }}</td>
|
|
|
|
<td>{{ user.nombre }}</td>
|
|
|
|
<td>{{ user.email }}</td>
|
|
|
|
<td>{{ user.nivel }}</td>
|
|
|
|
<td>
|
|
|
|
{% if user.estado == 'activo' %}
|
|
|
|
<span class="badge bg-success">Activo</span>
|
|
|
|
{% else %}
|
|
|
|
<span class="badge bg-danger">Inactivo</span>
|
|
|
|
{% endif %}
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<div class="btn-group btn-group-sm" role="group">
|
|
|
|
<a href="{{ url_for('users.edit', username=user.username) }}"
|
|
|
|
class="btn btn-outline-primary" title="Editar">
|
|
|
|
<i class="fas fa-edit"></i>
|
|
|
|
</a>
|
|
|
|
{% if user_id != current_user.get_id() and current_user.has_permission(9000) %}
|
|
|
|
<button type="button" class="btn btn-outline-danger"
|
|
|
|
onclick="confirmDelete('{{ user.username }}', '{{ user.username }}')" title="Eliminar">
|
|
|
|
<i class="fas fa-trash"></i>
|
|
|
|
</button>
|
|
|
|
{% endif %}
|
|
|
|
</div>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
{% endfor %}
|
2025-03-03 17:50:11 -03:00
|
|
|
{% else %}
|
2025-03-04 07:46:15 -03:00
|
|
|
<tr>
|
|
|
|
<td colspan="6" class="text-center">No hay usuarios registrados.</td>
|
|
|
|
</tr>
|
|
|
|
{% endif %}
|
2025-03-03 17:50:11 -03:00
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
{% if current_user.has_permission(9000) %}
|
|
|
|
<!-- Modal de confirmación para eliminar usuario -->
|
|
|
|
<div class="modal fade" id="deleteUserModal" tabindex="-1" aria-labelledby="deleteUserModalLabel" aria-hidden="true">
|
|
|
|
<div class="modal-dialog">
|
|
|
|
<div class="modal-content">
|
|
|
|
<div class="modal-header">
|
|
|
|
<h5 class="modal-title" id="deleteUserModalLabel">Confirmar Eliminación</h5>
|
|
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
|
|
</div>
|
|
|
|
<div class="modal-body">
|
|
|
|
<p>¿Está seguro que desea eliminar el usuario <strong id="deleteUserName"></strong>?</p>
|
|
|
|
<p class="text-danger">Esta acción no se puede deshacer.</p>
|
|
|
|
</div>
|
|
|
|
<div class="modal-footer">
|
|
|
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
|
|
|
|
<form id="deleteUserForm" method="POST" action="">
|
|
|
|
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
|
|
|
|
<button type="submit" class="btn btn-danger">Eliminar</button>
|
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
function confirmDelete(username, displayName) {
|
|
|
|
document.getElementById('deleteUserName').textContent = displayName;
|
|
|
|
document.getElementById('deleteUserForm').action = "{{ url_for('users.delete', username='') }}" + username;
|
|
|
|
|
|
|
|
var deleteModal = new bootstrap.Modal(document.getElementById('deleteUserModal'));
|
|
|
|
deleteModal.show();
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
{% endif %}
|
|
|
|
{% endblock %}
|