Ver Logs de Acceso al Portal
Exportar contenido
Visualiza el historial de accesos del cliente al portal con detalles de IP, acciones realizadas y timestamp.
- Localiza el cliente en la lista.
- Clic en el icono de ojo (Ver) — se abre la vista de detalle.
- Seccion “Registro de Accesos al Portal” — se muestra la tabla de logs.
- Revisa los accesos: fecha, tipo de accion, recurso accedido, IP y estado.
Tipos de accion registrados
Sección titulada «Tipos de accion registrados»| Tipo | Icono | Descripcion |
|---|---|---|
| Vista | Ojo | Cliente visualizo un documento |
| Descarga | Flecha abajo | Cliente descargo un PDF |
| Nota | Mensaje | Cliente anadio una nota o comentario |
| Aprobacion | Check | Cliente aprobo un presupuesto |
| Login | Escudo | Cliente inicio sesion en el portal |
Columnas de la tabla
Sección titulada «Columnas de la tabla»| Columna | Descripcion |
|---|---|
| Tipo | Icono y etiqueta del tipo de accion |
| Recurso | ID del documento accedido (factura, presupuesto, albaran) |
| IP | Direccion IP del cliente |
| Navegador | User agent resumido |
| Estado | Exito (verde) o Fallo (rojo) |
| Fecha | Timestamp del acceso (formato: DD/MM/YYYY HH:MM) |
| Motivo fallo | Si fallo, descripcion del error |
Casos de uso
Sección titulada «Casos de uso»Auditoria de accesos:
- Verifica quien accedio al portal y cuando.
- Detecta accesos no autorizados (IP desconocida).
Soporte al cliente:
- Confirma si el cliente visualizo la factura enviada.
- Verifica si el cliente descargo el PDF correctamente.
Seguridad:
- Identifica intentos de acceso fallidos (token invalido, email no verificado).
🔧 Detalles Tecnicos — Ver Logs Portal
Tablas involucradas:
| Tabla | Columnas clave | FK |
|---|---|---|
customer_portal_access_log | id, customer_id, token_id, access_type, resource_id, ip_address, user_agent, success, failure_reason, created_at | customers, customer_portal_tokens |
Tipos de access_type:
view— Visualizacion de documentodownload— Descarga de PDFnote— Anadio nota/comentarioapprove— Aprobo presupuestologin— Inicio sesion
Campos de log:
| Campo | Tipo | Descripcion |
|---|---|---|
customer_id | UUID | FK a cliente |
token_id | UUID | FK a token usado |
access_type | VARCHAR | Tipo de accion |
resource_id | UUID | ID del documento accedido (nullable) |
ip_address | VARCHAR | IP del cliente |
user_agent | TEXT | Navegador y SO |
success | BOOLEAN | True si exito, False si fallo |
failure_reason | TEXT | Motivo del fallo (nullable) |
created_at | TIMESTAMP | Fecha y hora del acceso |
Queries de diagnostico:
-- Ultimos 50 accesos por clienteSELECT * FROM customer_portal_access_logWHERE customer_id = '<customer_id>'ORDER BY created_at DESCLIMIT 50;
-- Accesos fallidosSELECT * FROM customer_portal_access_logWHERE customer_id = '<customer_id>' AND success = falseORDER BY created_at DESC;
-- Accesos por IP sospechosaSELECT * FROM customer_portal_access_logWHERE customer_id = '<customer_id>' AND ip_address = '<ip_sospechosa>'ORDER BY created_at DESC;
-- Resumen de accesos por tipoSELECT access_type, COUNT(*) as count, SUM(CASE WHEN success THEN 1 ELSE 0 END) as success_countFROM customer_portal_access_logWHERE customer_id = '<customer_id>'GROUP BY access_type;Componente:
PortalAccessLogs.tsx- Props:
customerId - Carga:
loadAccessLogs()— Query acustomer_portal_access_log - Limite: 50 registros mas recientes
Politicas RLS:
- Solo usuarios autenticados del negocio pueden ver logs
- Aislamiento por
business_idvia join concustomers