Files
acmcc/supabase/migrations/20260514233934_d4d7d2a3-f6d4-4960-9f0e-dd6d54cea58e.sql
2026-06-01 20:19:26 -04:00

28 lines
870 B
PL/PgSQL

CREATE OR REPLACE FUNCTION public.is_arc_committee_member_of_association(_user_id uuid, _association_id uuid)
RETURNS boolean
LANGUAGE sql
STABLE
SECURITY DEFINER
SET search_path TO 'public'
AS $$
SELECT EXISTS (
SELECT 1
FROM public.arc_committee_members acm
JOIN auth.users u ON lower(u.email) = lower(acm.email)
WHERE u.id = _user_id
AND acm.association_id = _association_id
AND acm.is_active = true
AND acm.email IS NOT NULL
);
$$;
DROP POLICY IF EXISTS "ARC committee members can view association ARC applications" ON public.arc_applications;
CREATE POLICY "ARC committee members can view association ARC applications"
ON public.arc_applications
FOR SELECT
TO authenticated
USING (
public.has_role(auth.uid(), 'arc_member'::public.app_role)
AND public.is_arc_committee_member_of_association(auth.uid(), association_id)
);