diff --git a/supabase/migrations/20251111012554_4b4bf28b-0c0e-4866-8798-6e00996013d3.sql b/supabase/migrations/20251111012554_4b4bf28b-0c0e-4866-8798-6e00996013d3.sql new file mode 100644 index 00000000..1d52b47e --- /dev/null +++ b/supabase/migrations/20251111012554_4b4bf28b-0c0e-4866-8798-6e00996013d3.sql @@ -0,0 +1,44 @@ +-- Add RLS policies for system_alerts table + +-- SELECT policy: Moderators can view system alerts +CREATE POLICY "Moderators can view system alerts" +ON public.system_alerts +FOR SELECT +TO authenticated +USING ( + EXISTS ( + SELECT 1 FROM public.user_roles + WHERE user_id = auth.uid() + AND role IN ('admin', 'moderator', 'superuser') + ) +); + +-- INSERT policy: System can create alerts +CREATE POLICY "System can create alerts" +ON public.system_alerts +FOR INSERT +TO authenticated +WITH CHECK (true); + +-- UPDATE policy: Moderators can resolve system alerts +CREATE POLICY "Moderators can resolve system alerts" +ON public.system_alerts +FOR UPDATE +TO authenticated +USING ( + EXISTS ( + SELECT 1 FROM public.user_roles + WHERE user_id = auth.uid() + AND role IN ('admin', 'moderator', 'superuser') + ) +) +WITH CHECK ( + EXISTS ( + SELECT 1 FROM public.user_roles + WHERE user_id = auth.uid() + AND role IN ('admin', 'moderator', 'superuser') + ) +); + +-- Grant permissions to authenticated users +GRANT SELECT, INSERT, UPDATE ON public.system_alerts TO authenticated; \ No newline at end of file