26 lines
1.0 KiB
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.';
|