build: actualizar dist con la versión de producción más reciente
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# GLM Hub — LED de acceso + jefe inmediato
|
||||
|
||||
## Qué cambia
|
||||
|
||||
Esta versión agrega dos mejoras sin cambiar el modelo actual de autenticación del Hub:
|
||||
|
||||
1. Cada aplicación publicada muestra el estado **Con acceso / Sin acceso** del usuario conectado.
|
||||
2. Las solicitudes de acceso se envían a **Isaac Aracena, José Leopoldo Gómez, Máximo Gómez y al jefe inmediato del solicitante**, cuando `empleados_glm.supervisor_email` está disponible.
|
||||
|
||||
La primera decisión registrada sigue siendo definitiva para todos los aprobadores.
|
||||
|
||||
## Fuentes de acceso utilizadas
|
||||
|
||||
El Hub no replica los permisos de las aplicaciones restringidas: consulta su fuente real en Supabase.
|
||||
|
||||
- **CDC Project Management** → `tablero_cdc_allowed_users` (`email`, `is_active`).
|
||||
- **Portal de Verificación de Nóminas** → `cruce_cuentas_usuarios_autorizados` (`email`).
|
||||
- **Seguimiento de Impuestos GLM** → `tax_calendar_access` (`email`, `active`).
|
||||
- **BambooHR, CDC Brief, los 5 Cruces de Seguridad Social, Validación de IR - Nicaragua y GLM ID Card Generator** → acceso general para usuarios autenticados `@gomezleemarketing.com`.
|
||||
- Cualquier aplicación futura que no esté clasificada se muestra por seguridad como **Sin acceso** hasta agregar su regla al RPC.
|
||||
|
||||
El estado se vuelve a comprobar al iniciar sesión, cada 60 segundos y cuando el usuario vuelve a enfocar la pestaña del Hub.
|
||||
|
||||
## Orden de implementación
|
||||
|
||||
### 1. Supabase
|
||||
|
||||
Ejecutar completo:
|
||||
|
||||
`SUPABASE-GLM-HUB-LED-ACCESO-JEFE-INMEDIATO.sql`
|
||||
|
||||
Este script:
|
||||
|
||||
- elimina la restricción que limitaba los aprobadores a tres correos exactos;
|
||||
- conserva a los tres aprobadores base;
|
||||
- obtiene el jefe desde `empleados_glm.work_email → supervisor_email`;
|
||||
- evita duplicados;
|
||||
- no rompe la solicitud si el jefe no está disponible;
|
||||
- crea el RPC `glm_hub_get_my_app_access()` para el LED.
|
||||
|
||||
### 2. n8n
|
||||
|
||||
Actualizar el workflow **GLM Hub - Solicitudes de acceso y aprobación** con:
|
||||
|
||||
`n8n/GLM-Hub-Solicitudes-Acceso-Aprobacion.json`
|
||||
|
||||
No se modificó el workflow de Gemini. Tampoco se cambió la forma actual en que el workflow usa las credenciales/keys de Supabase, por solicitud expresa.
|
||||
|
||||
### 3. Frontend
|
||||
|
||||
Publicar el contenido nuevo de `dist/` en el mismo subdominio del GLM Hub.
|
||||
|
||||
## Prueba recomendada
|
||||
|
||||
1. Iniciar sesión con un usuario GLM que no sea administrador.
|
||||
2. Confirmar que cada app muestre **Con acceso** o **Sin acceso**.
|
||||
3. Verificar un usuario presente y otro ausente en cada una de las tres tablas restringidas.
|
||||
4. Enviar una solicitud de acceso.
|
||||
5. En la ejecución de n8n, revisar `Emitir enlaces de aprobación`: debe devolver 3 aprobadores base y, cuando exista, un cuarto aprobador correspondiente al `supervisor_email`.
|
||||
6. Confirmar que todos reciban su correo.
|
||||
7. Aprobar con uno de ellos y comprobar que un segundo intento muestre que la solicitud ya fue atendida.
|
||||
8. Agregar/eliminar al usuario en la tabla real de una app restringida y volver al Hub; al recuperar el foco (o como máximo en 60 segundos) el LED debe actualizarse.
|
||||
|
||||
## Comportamiento de seguridad
|
||||
|
||||
- Un usuario sin registro en `glm_hub_authorized_users` sigue entrando al Hub si pertenece a `@gomezleemarketing.com`.
|
||||
- `glm_hub_authorized_users` continúa usándose para administradores y bloqueos excepcionales.
|
||||
- El LED es informativo: no sustituye la protección interna de cada aplicación.
|
||||
- Las aplicaciones no clasificadas no se marcan automáticamente como autorizadas.
|
||||
Reference in New Issue
Block a user