Skip to content

Mejoras de integración de WhatsApp y fortalecimiento de seguridad

Latest

Choose a tag to compare

@theizerdev theizerdev released this 24 Jul 21:04

Objetivo: Consolidar todas las mejoras de integración, seguridad y documentación realizadas en la aplicación driscollsapp para ofrecer una experiencia de WhatsApp estable, segura y fácil de administrar.

📦 Cambios incluidos
1️⃣ Integración de WhatsApp
Nuevo servicio WhatsAppService.php
Uso estricto del campo document para envío multipart.
Validación de tipo MIME y tamaño del archivo.
Registro de errores mejorado (incluye código HTTP y cuerpo de respuesta).
Fallback a envío por JSON cuando el endpoint multipart falla.
Endpoints de WhatsApp (rutas)
/integrations/whatsapp – Vista de la configuración.
/integrations/whatsapp/status – Estado de la conexión.
/integrations/whatsapp/update – Actualización de credenciales.
/integrations/whatsapp/generate-token, /sync, /connect, /disconnect, /reconnect, /send-message – Operaciones completas de gestión.
Todas las rutas están protegidas con los nuevos permisos whatsapp..
2️⃣ Permisos Granulares
WhatsApp
whatsapp.view – Ver configuración.
whatsapp.manage – Gestionar configuración.
whatsapp.send – Enviar mensajes.
Envío de carnet por WhatsApp
proveedores.send-carnet-whatsapp – Envío a proveedores.
productores.send-carnet-whatsapp – Envío a productores.
Mapeo en PermissionSeeder.php
Los permisos whatsapp.
se agrupan bajo el módulo Integraciones.
Se añadió lógica de determinación del sector (integraciones) para los nuevos permisos.
Aplicación de middleware
Todas las rutas de integración usan auth + verified.
Cada ruta cuenta con can() que verifica el permiso correspondiente.
3️⃣ Seguridad y Protección de Rutas
routes/modules/integration.php ahora protege:
Rutas de mapas (mapbox, google-maps).
Rutas de WhatsApp y carnet con los permisos definidos.
routes/web.php también actualizado para que los endpoints de envío de carnet solo sean accesibles por usuarios con los permisos específicos.
4️⃣ Documentación Actualizada
README.md
Listado de los endpoints válidos de WhatsApp (/api/whatsapp/send, /api/whatsapp/send-document).
Eliminación del endpoint inexistente /api/whatsapp/send-image (404).
Instrucciones de uso para el envío de documentos y la configuración de credenciales.
Comentarios en código explicativos para futuros mantenedores.
5️⃣ Otros Mejoras y Correcciones
Limpieza de logs – Mensajes claros y estructurados para facilitar la depuración.
Refactor de rutas – Orden y consistencia en los nombres (name('integrations.whatsapp.')).
Ajuste en PermissionSeeder.php
Inserción de los nuevos permisos dentro del arreglo de permisos de “Integraciones”.
Mapeado de whatsapp.
al sector integraciones para que aparezca en el mismo grupo en la UI de administración.
🛠️ Cómo probar la release
Ejecutar pruebas
bash
php artisan test
Verificar que los permisos existan
php
Spatie\Permission\Models\Permission::findByName('whatsapp.send');
Probar el envío de documento (con un archivo válido) a través del endpoint /api/whatsapp/send-document.
Comprobar la UI – Iniciar sesión con un usuario que tenga whatsapp.manage y asegúrate de poder acceder a la pestaña “Integraciones → WhatsApp”.
📈 Impacto
Fiabilidad: El envío de documentos ya no falla por uso del campo incorrecto.
Seguridad: Sólo los roles autorizados pueden acceder o modificar la configuración de WhatsApp y enviar carnets.
Mantenimiento: La estructura de permisos y la documentación hacen que futuros cambios sean más sencillos y menos propensos a errores.

Full Changelog: https://github.com/theizerdev/larareact/commits/v1.0.5