Skip to main content

Permisos

El acceso a cada módulo del Panel depende de los permisos de tu usuario en Auth0. Hay un permiso de lectura y otro de edición por módulo, más un permiso comodín de acceso total. El panel no asigna permisos: solo los lee. Viajan en el claim permissions del access token que devuelve Auth0 al hacer login. Si necesitas más acceso, pídelo a quien administre Auth0.

Permisos disponibles

El valor de llaves es exchanges, no keys. Es el nombre que usa la API para el intercambio de llaves.
Calendarios usa nombres distintos en el panel y en la API. El panel muestra la sección con read:calendar-manager y deja editar con edit:calendar-manager. En cambio, los endpoints /v2/admin/calendars de vivla-api exigen read:calendars y edit:calendars. Para que Calendarios funcione, tu usuario necesita las dos parejas de permisos, o *. Con solo read:calendar-manager ves la sección, pero la API rechaza las llamadas.

Qué desbloquea cada permiso de edición

Los permisos de lectura protegen las rutas y el menú. Los de edición, además, muestran u ocultan botones y controles dentro de las pantallas.
Ocultar un botón no es seguridad. El panel oculta lo que no puedes hacer para que no lo intentes, pero quien valida de verdad cada operación es vivla-api con el mismo token.

Cómo se resuelve el acceso

  • Menú lateral: solo aparecen las secciones cuyo permiso de lectura tienes (filterByPermission sobre navigableRoutes).
  • Rutas: cada ruta va dentro de un PermissionGuard. Si no tienes el permiso, PermissionBasedRedirect te manda a la primera sección accesible del menú. Si no tienes ninguna, vas a /unauthorized.
  • Controles: los componentes usan useHasPermission o envuelven el control en <PermissionGuard> sin fallback, así que simplemente no se pintan.
Un requiredPermission puede ser un permiso o una lista. Con una lista basta con tener uno de ellos (lógica OR). Para exigir todos a la vez existe useHasAllPermissions (lógica AND). En ambos casos * da acceso.

Cambios de permisos

El panel recalcula tus permisos cada vez que cambia el token. Renueva el token al menos cada 10 minutos, así que un cambio en Auth0 aparece en el siguiente refresh.
Si te acaban de dar un permiso y no ves la sección, cierra sesión desde el menú de la cabecera y vuelve a entrar. El nuevo token ya trae el permiso.

Código