El registro de auditoría es el mecanismo de trazabilidad de Banred Helpdesk. Cada acción relevante que un usuario ejecuta dentro del sistema queda almacenada en la tablaDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/banredco/helpdesk/llms.txt
Use this file to discover all available pages before exploring further.
user_activity_logs junto con la identidad del usuario, la dirección IP de origen y la marca de tiempo exacta. Esto garantiza responsabilidad operativa, facilita investigaciones ante incidentes y proporciona una evidencia inmutable del historial de actividad del equipo de soporte.
Qué se registra
Cada entrada enuser_activity_logs contiene los siguientes campos:
| Campo | Descripción |
|---|---|
user_id | Identificador del usuario que ejecutó la acción (clave foránea a users). |
action | Texto descriptivo de la acción realizada (ej. 'Crear Ticket', 'Responder Ticket'). |
details | Información adicional de contexto sobre la acción (ej. número de ticket, campo modificado). |
ip_address | Dirección IP desde la que se originó la solicitud HTTP. |
created_at | Fecha y hora exactas de la acción, registradas con NOW() en zona horaria del servidor. |
Acceder al log de actividad
La ruta/admin/audit.php presenta las últimas 1 000 entradas de actividad del sistema, ordenadas de más reciente a más antigua. La consulta base es:
| Acción | Color de insignia |
|---|---|
| Crear Ticket | Verde (bg-success) |
| Actualizar Ticket | Azul (bg-primary) |
| Responder Ticket | Cian (bg-info) |
| Comentario Interno | Amarillo (bg-warning) |
| Nota Privada | Negro (bg-dark) |
| Eliminar Ticket | Rojo (bg-danger) |
| Otras acciones | Gris (bg-secondary) |
Auditoría de correos
La pestaña Correos en/admin/email-audit.php muestra un registro independiente de los correos procesados por el sistema (tanto vía Gmail API como IMAP). Este log consulta la tabla email_imports y presenta las últimas 500 entradas con las siguientes columnas:
| Columna | Descripción |
|---|---|
| Fecha | Fecha y hora de procesamiento. |
| Tipo | Gmail API o IMAP según el campo source_type. |
| Buzón | Nombre y dirección del buzón (mailboxes.name / mailboxes.email). |
| Remitente | sender_email del mensaje entrante. |
| Asunto | Asunto del correo (truncado visualmente). |
| Ticket | Número de ticket vinculado, con enlace directo si existe. |
| Estado | Procesado, Duplicado o Error según process_status. |
requireRole([1, 2])).
El helper Audit::log()
Toda la instrumentación de auditoría se centraliza en la clase Audit ubicada en app/Helpers/Audit.php. Su único método estático, log(), inserta un registro en user_activity_logs de forma consistente desde cualquier parte del código:
Cuándo se generan entradas
El helperAudit::log() es invocado en los siguientes eventos del ciclo de vida del sistema:
- Inicio de sesión — al autenticarse correctamente un usuario.
- Creación de ticket — cuando se crea un ticket manual o vía correo entrante.
- Respuesta a ticket — al publicar una respuesta al cliente.
- Cambio de estado — al actualizar el estado, prioridad, agente asignado o grupo.
- Comentario interno / Nota privada — acciones que no llegan al cliente pero quedan registradas.
- Eliminación de ticket — borrado lógico (
is_deleted = 1). - Gestión de usuarios — creación, modificación o desactivación de cuentas.
- Cambios en buzones — modificación de la configuración de correo (mailboxes).
El registro de auditoría es de solo lectura. No existe ninguna opción en la interfaz administrativa para editar o eliminar entradas de
user_activity_logs. Esto garantiza la integridad de la traza y evita que se puedan ocultar acciones realizadas en el sistema.La dirección IP de cada entrada se captura directamente de
$_SERVER['REMOTE_ADDR'] en el momento de la llamada a Audit::log(). En entornos con proxy reverso o balanceadores de carga, asegúrese de que el servidor web esté configurado para reenviar la IP real del cliente mediante el encabezado X-Forwarded-For y que la aplicación lo lea correctamente.