
-- 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);
