Skip to main content

Permisos

El sistema de permisos controla el acceso a cada herramienta/módulo de la plataforma con 4 niveles de granularidad. Los permisos se asignan por usuario o por equipo, y se combinan con los roles globales.

Niveles de permiso

La jerarquía es acumulativa: un usuario con nivel admin tiene automáticamente acceso edit y view.

Resolución de permisos

El permiso efectivo de un usuario para un módulo se resuelve con la siguiente prioridad:
  1. Permiso de usuario — Asignación directa al usuario para ese módulo
  2. Permiso de equipo — Si no hay permiso individual, se usa el del equipo
  3. Default por rol — Si no hay permiso de equipo, se aplica el default del rol global

Módulos y grupos

Los módulos (herramientas) se organizan en grupos para la vista del home:
  • Cada módulo tiene un app_type: tool (herramienta nativa) o link (enlace externo)
  • Los grupos definen el orden de visualización en el dashboard
  • La visibilidad se controla por equipo: un grupo o módulo puede ser visible solo para ciertos equipos

Layout personalizado

Cada usuario puede personalizar su layout del home:
  • Reordenar módulos y grupos
  • El layout se guarda en la base de datos
  • Se puede resetear al layout por defecto

API

Módulos para el usuario

Administración de módulos (Admin)

Grupos (Admin)

Asignación de permisos (Admin)

Filtrado de módulos visibles

El método getHomeModules filtra los módulos usando estas reglas:
  1. Auth0 tools: módulos asignados en los claims del JWT
  2. Módulos personales: módulos creados por el propio usuario
  3. Visibilidad por equipo: módulos visibles para los equipos del usuario
  4. Módulos globales: módulos marcados como visibles para todos
El sistema de permisos se aplica tanto en el frontend (renderizado condicional de módulos) como en el backend (guards de acceso en cada endpoint).