-- Drop and recreate staff policy with WITH CHECK so updates work DROP POLICY IF EXISTS "Staff can manage elections" ON public.elections; CREATE POLICY "Staff can manage elections" ON public.elections FOR ALL TO authenticated USING (has_role(auth.uid(), 'admin'::app_role) OR has_role(auth.uid(), 'manager'::app_role) OR has_role(auth.uid(), 'employee'::app_role)) WITH CHECK (has_role(auth.uid(), 'admin'::app_role) OR has_role(auth.uid(), 'manager'::app_role) OR has_role(auth.uid(), 'employee'::app_role)); -- Also allow anon to SELECT elections for public voting page CREATE POLICY "Anon can view elections" ON public.elections FOR SELECT TO anon USING (true);