尚未收集儲存庫資訊。
尚未偵測到更新。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.