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
- Entrá a Administración → Gestión de Usuarios.
- 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).
- 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. - 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.”
- Para una excepción puntual de una sola persona (sin tocar el rol completo), se usa la columna Excepciones de la lista de usuarios.
- 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-passwordgenera 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.” - 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):
| Rol | Uso típico |
|---|---|
| Presidente | Acceso completo, único rol con Gestión de usuarios y Contabilidad y Configuración |
| Responsable de Atención al Socio | Socios, Asistencia, Finanzas, Caja, Facturación, Tienda Verde (admin) |
| Tesorero | Finanzas, Contabilidad y Configuración, Estado de Resultados, Caja, Facturación |
| Profe | Solo “Socios — solo su disciplina” y Asistencia |
| Directivo Disciplina | Socios, Socios — solo su disciplina, Asistencia, Estado de Resultados |
| Vocal | Panel 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ÓNsi 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).