Skip to content

Trigger y Orden Canónico

El sistema posee un trigger en la tabla modulos_acciones.

Este trigger se ejecuta automáticamente cuando se crea una acción nueva.

Su función es:

Insertar automáticamente registros en roles_acciones para todos los roles que ya tengan asignado el módulo correspondiente en roles_modulos.


¿Qué problema resuelve?

Evita:

  • Insertar manualmente cientos de permisos.
  • Inconsistencias entre roles.
  • Olvidos humanos.
  • Estados parciales.

Garantiza consistencia automática.


Consecuencia crítica: Orden obligatorio

El sistema impone un orden canónico de creación.

Si el orden se rompe, el modelo queda inconsistente.

Orden correcto:

  1. Crear roles.
  2. Crear módulo.
  3. Asignar módulo a roles (roles_modulos).
  4. Crear acciones (modulos_acciones) → el trigger asigna automáticamente.
  5. Limpiar rol LITE (si aplica).
  6. (Opcional) Backfill defensivo.

¿Qué pasa si se crean acciones antes de asignar el módulo?

El trigger no asigna nada.

Resultado:

  • Huecos invisibles en roles_acciones.
  • Permisos faltantes.
  • Inconsistencias difíciles de detectar.

Regla de oro

Nunca crear acciones antes de asignar el módulo a los roles.

El trigger depende de roles_modulos.

No es un detalle. Es un contrato estructural del sistema.