Saltearse al contenido

Usuarios y roles

¿Para qué sirve?

El módulo Administración → Gestión de Usuarios controla quién puede entrar al panel de administración y qué puede ver o modificar cada persona, mediante un sistema de roles con permisos por módulo.

Antes de comenzar

Solo los usuarios con rol Presidente ven y pueden modificar este módulo (columna “Gestión de usuarios” habilitada solo para Presidente en la matriz de permisos, ver más abajo).

Paso a paso

  1. Entrá a Administración → Gestión de Usuarios.
  2. La pantalla tiene dos pestañas: Usuarios (alta, edición, reseteo de clave de cada persona) y Roles y Permisos (la matriz que define qué puede hacer cada rol).
  3. Para dar de alta a alguien: botón + Nuevo usuario, completar nombre, email y rol (llama a la Edge Function admin-crear-usuario). La tabla de usuarios tiene columnas: Usuario, Email, Rol, Excepciones, Estado, Último acceso, Acciones.
  4. Para cambiar qué puede hacer un rol completo (no una persona puntual): pestaña Roles y Permisos, activar/desactivar el permiso correspondiente y Guardar cambios. La confirmación real que pide el sistema antes de aplicar es: “¿Guardar los cambios de la matriz? Impacta de inmediato a todos los usuarios de los roles que modificaste.”
  5. Para una excepción puntual de una sola persona (sin tocar el rol completo), se usa la columna Excepciones de la lista de usuarios.
  6. Para resetear la contraseña de alguien: botón 🔑 en la fila de ese usuario (oculto para el super_admin) → confirmar “¿Generar una contraseña nueva para (nombre)? La anterior deja de funcionar al instante.” → la Edge Function admin-resetear-password genera una clave temporal que se muestra una sola vez en un modal, con el aviso: “Esta contraseña temporal se muestra una sola vez. Copiala y pasásela al usuario por tu canal habitual.”
  7. No existe un botón de eliminar usuario: dar de baja a alguien es desactivarlo (columna Estado) — la cuenta no se borra de la autenticación, solo deja de poder entrar.

Resultado esperado

Roles verificados hoy en el sistema (pestaña Usuarios y Roles y Permisos, ambas consultadas en vivo):

RolUso típico
PresidenteAcceso completo, único rol con Gestión de usuarios y Contabilidad y Configuración
Responsable de Atención al SocioSocios, Asistencia, Finanzas, Caja, Facturación, Tienda Verde (admin)
TesoreroFinanzas, Contabilidad y Configuración, Estado de Resultados, Caja, Facturación
ProfeSolo “Socios — solo su disciplina” y Asistencia
Directivo DisciplinaSocios, Socios — solo su disciplina, Asistencia, Estado de Resultados
VocalPanel principal, Asistencia, Estado de Resultados

Permisos verificados en la matriz (columnas = roles de arriba, ✅ = habilitado en al menos un rol): Panel principal (selector), Socios, Socios — solo su disciplina, Asistencia, Finanzas, Contabilidad y Configuración, Estado de Resultados, Caja, Admin (facturación), Gestión de usuarios, Tienda Verde (admin), y al menos una fila adicional (“Columnas…”) no verificada por completo — PENDIENTE DE VALIDACIÓN el listado exhaustivo de filas de permisos, ya que la tabla continúa más abajo de lo capturado en esta auditoría.

PENDIENTE DE VALIDACIÓN: el rol “Cobrador” mencionado en el inventario original de módulos no apareció como columna en la matriz vista; puede estar oculto por scroll horizontal o no existir más como rol activo.

[SCREENSHOT NECESARIO: pestaña Usuarios, con emails/nombres de prueba — la real expone emails y nombres de dirigentes reales]

[SCREENSHOT NECESARIO: matriz completa de Roles y Permisos, incluyendo las filas por debajo de “Tienda Verde (admin)”]

Importante

  • Los permisos se aplican por rol, no por persona — para dar un permiso puntual sin afectar a todo el rol, hay que usar el mecanismo de “excepción” desde la lista de Usuarios.
  • Además de este control en pantalla, el Worker de Cloudflare vuelve a validar permisos del lado del servidor antes de servir ciertas páginas sensibles (financieras), y la base de datos aplica Row Level Security — el control de este módulo no es la única capa de seguridad.

Problemas frecuentes

  • Un usuario no ve un módulo que debería ver: revisar si el rol tiene el permiso activado en la matriz, y si esa persona no tiene una excepción puntual que se lo esté restringiendo.
  • Cambié un permiso de rol y no veo el efecto: probar cerrar sesión y volver a entrar; PENDIENTE DE VALIDACIÓN si el cambio de permisos requiere refrescar el JWT (hay un fix reciente en el historial de commits — “rehidratar JWT al cargar la página, no solo cada 30s” — relacionado a este tipo de situación).