Saltearse al contenido

Veo "no tenés permisos" en un módulo

Síntoma

El usuario puede entrar al panel, pero al ir a un módulo específico (por ejemplo Contabilidad, o Gestión de Usuarios) no lo ve en el menú, o el sistema le indica que no tiene permiso.

Causa

PANDA valida permisos en tres capas independientes, y las tres tienen que estar de acuerdo para que un módulo funcione:

  1. Rol del usuario (tabla roles_admin/usuarios_admin): definido en Administración → Gestión de Usuarios → Roles y Permisos. Ver la matriz completa en Usuarios y roles.
  2. Worker de Cloudflare (_worker.js): para un subconjunto de páginas especialmente sensibles (hoy, según wrangler.jsonc: dashboard-financiero.html y estado-resultados.html, más los JSON de portal_data.json/socios_data.json), el Worker vuelve a chequear permisos del lado del servidor antes de servir la página, mediante la RPC mis_permisos(), independientemente de lo que el frontend muestre.
  3. RLS en Supabase: incluso si el frontend muestra un botón, la base de datos puede rechazar la operación si las políticas de Row Level Security no la permiten para ese usuario.

Cómo diagnosticar

  1. Revisar el rol de la persona y si tiene alguna excepción puntual cargada (columna “Excepciones” en Gestión de Usuarios → Usuarios).
  2. Revisar en la matriz de Roles y Permisos si ese rol tiene el permiso del módulo en cuestión activado.
  3. Si el permiso está bien en la matriz pero el problema persiste, puede ser un caso de las capas 2 o 3 (Worker/RLS) — esto requiere revisión de código, no solo de la pantalla de administración.

Importante

Cambiar un permiso en la matriz de roles impacta de inmediato a todos los usuarios de ese rol, salvo que tengan una excepción puntual — no es necesario (ni recomendable) crear un rol nuevo solo para un caso puntual.