Files
acmcc/supabase/migrations/20260428031852_e7521c0d-1162-4048-ade0-64bd7c895d34.sql
2026-06-01 20:19:26 -04:00

42 lines
1.2 KiB
PL/PgSQL

CREATE OR REPLACE FUNCTION public.is_board_member_of_association(_user_id uuid, _association_id uuid)
RETURNS boolean
LANGUAGE sql
STABLE
SECURITY DEFINER
SET search_path = public
AS $$
SELECT EXISTS (
SELECT 1
FROM public.board_members bm
WHERE bm.user_id = _user_id
AND bm.association_id = _association_id
)
$$;
DROP POLICY IF EXISTS "Board members can insert invoices for their associations" ON public.invoices;
CREATE POLICY "Board members can insert invoices for their associations"
ON public.invoices
FOR INSERT
TO authenticated
WITH CHECK (
public.is_board_member_of_association(auth.uid(), association_id)
);
DROP POLICY IF EXISTS "Board members can view invoices for their associations" ON public.invoices;
CREATE POLICY "Board members can view invoices for their associations"
ON public.invoices
FOR SELECT
TO authenticated
USING (
public.is_board_member_of_association(auth.uid(), association_id)
);
DROP POLICY IF EXISTS "Board members can insert bills for their associations" ON public.bills;
CREATE POLICY "Board members can insert bills for their associations"
ON public.bills
FOR INSERT
TO authenticated
WITH CHECK (
public.is_board_member_of_association(auth.uid(), association_id)
);