尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗CRM inmobiliario construido con Next.js 14 (App Router), Tailwind CSS y Supabase.
@supabase/supabase-js + @supabase/ssr)npm install
npm run dev
Las credenciales viven en .env.local:
NEXT_PUBLIC_SUPABASE_URL=...
NEXT_PUBLIC_SUPABASE_ANON_KEY=...
app/
layout.js # layout raíz (fuente + metadata, lang es)
page.js # redirige a /dashboard
login/page.js # Módulo 1 — pantalla de login
(app)/
layout.js # layout protegido (sidebar + guard de sesión)
dashboard/page.js # placeholder (Módulo 5)
components/
Sidebar.js # navegación + datos del usuario + logout
lib/supabase/
client.js # cliente browser
server.js # cliente server (cookies)
middleware.js # refresco de sesión + protección de rutas
getPerfil.js # carga el perfil desde `usuarios` (defensivo)
middleware.js # entrada del middleware
Para que los módulos que leen/escriben datos funcionen:
supabase/rls_fix.sql (ver abajo).supabase/storage_setup.sql
para crear el bucket propiedades y sus políticas (necesario para subir fotos).usuariosAl conectar contra Supabase, todas las tablas devuelven:
code 42P17 — infinite recursion detected in policy for relation "usuarios"
La política RLS de usuarios se consulta a sí misma (patrón típico: "para saber
si el usuario es admin, hago SELECT sobre usuarios"), lo que genera recursión.
Como las demás tablas (propiedades, leads, contactos, etc.) también
verifican el rol consultando usuarios, ninguna tabla se puede leer.
El login NO está afectado (Supabase Auth es independiente), pero ningún módulo que lea datos funcionará hasta resolver esto.
El fix completo y autocontenido está en supabase/rls_fix.sql.
Resumen: el vínculo Auth ↔ usuarios es la columna auth_id (= auth.uid()),
mientras que usuarios.id es el ID interno al que apuntan leads.agente_id,
propiedades.agente_id, interacciones.usuario_id, etc. El fix crea dos
funciones SECURITY DEFINER (mi_rol() y mi_usuario_id()) que leen sin
disparar RLS, y reemplaza las políticas recursivas de usuarios. Arreglando
solo usuarios (la raíz), el resto de las tablas vuelve a leerse.