Files
Gesti-n-Reservas-Naturcalab…/supabase/migrations/008_add_availability_view.sql

26 lines
1.0 KiB
SQL

-- Migración 008: Vista segura para usuarios con rol external_availability_viewer
--
-- Problema: RLS limita FILAS pero no COLUMNAS.
-- Los usuarios Teneriffa solo deben ver ocupado/libre, sin datos personales.
-- Solución: vista que expone únicamente los campos necesarios.
-- El frontend de Teneriffa consulta esta vista, no la tabla directa.
CREATE OR REPLACE VIEW public.reservations_availability AS
SELECT
id,
start_date,
end_date,
property,
'Ocupado' AS status -- Nunca expone el origen real ni el cliente
FROM public.reservations;
-- Dar acceso de SELECT a usuarios authenticated a la vista
-- La seguridad real se gestiona en el frontend con useUserRole()
-- y en la migración 009 mediante RLS en la tabla base.
GRANT SELECT ON public.reservations_availability TO authenticated;
COMMENT ON VIEW public.reservations_availability IS
'Vista de disponibilidad segura. Solo expone fechas y propiedad. '
'Usada por usuarios external_availability_viewer (Teneriffa). '
'No expone cliente, precios, notas ni datos personales.';