mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 06:51:12 -05:00
108 lines
2.1 KiB
PL/PgSQL
108 lines
2.1 KiB
PL/PgSQL
-- Create Broadcast Authorization Policy
|
|
CREATE POLICY "Moderators can receive broadcasts"
|
|
ON "realtime"."messages"
|
|
FOR SELECT
|
|
TO authenticated
|
|
USING (public.check_realtime_access());
|
|
|
|
-- Create Trigger Functions for Broadcast
|
|
CREATE OR REPLACE FUNCTION public.broadcast_content_submission_changes()
|
|
RETURNS trigger
|
|
SECURITY DEFINER
|
|
LANGUAGE plpgsql
|
|
AS $$
|
|
BEGIN
|
|
PERFORM realtime.broadcast_changes(
|
|
'moderation:content_submissions',
|
|
TG_OP,
|
|
TG_OP,
|
|
TG_TABLE_NAME,
|
|
TG_TABLE_SCHEMA,
|
|
NEW,
|
|
OLD
|
|
);
|
|
RETURN NULL;
|
|
END;
|
|
$$;
|
|
|
|
CREATE OR REPLACE FUNCTION public.broadcast_submission_item_changes()
|
|
RETURNS trigger
|
|
SECURITY DEFINER
|
|
LANGUAGE plpgsql
|
|
AS $$
|
|
BEGIN
|
|
PERFORM realtime.broadcast_changes(
|
|
'moderation:submission_items',
|
|
TG_OP,
|
|
TG_OP,
|
|
TG_TABLE_NAME,
|
|
TG_TABLE_SCHEMA,
|
|
NEW,
|
|
OLD
|
|
);
|
|
RETURN NULL;
|
|
END;
|
|
$$;
|
|
|
|
CREATE OR REPLACE FUNCTION public.broadcast_report_changes()
|
|
RETURNS trigger
|
|
SECURITY DEFINER
|
|
LANGUAGE plpgsql
|
|
AS $$
|
|
BEGIN
|
|
PERFORM realtime.broadcast_changes(
|
|
'moderation:reports',
|
|
TG_OP,
|
|
TG_OP,
|
|
TG_TABLE_NAME,
|
|
TG_TABLE_SCHEMA,
|
|
NEW,
|
|
OLD
|
|
);
|
|
RETURN NULL;
|
|
END;
|
|
$$;
|
|
|
|
CREATE OR REPLACE FUNCTION public.broadcast_review_changes()
|
|
RETURNS trigger
|
|
SECURITY DEFINER
|
|
LANGUAGE plpgsql
|
|
AS $$
|
|
BEGIN
|
|
PERFORM realtime.broadcast_changes(
|
|
'moderation:reviews',
|
|
TG_OP,
|
|
TG_OP,
|
|
TG_TABLE_NAME,
|
|
TG_TABLE_SCHEMA,
|
|
NEW,
|
|
OLD
|
|
);
|
|
RETURN NULL;
|
|
END;
|
|
$$;
|
|
|
|
-- Create Triggers
|
|
CREATE TRIGGER broadcast_content_submission_changes
|
|
AFTER INSERT OR UPDATE OR DELETE
|
|
ON public.content_submissions
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION public.broadcast_content_submission_changes();
|
|
|
|
CREATE TRIGGER broadcast_submission_item_changes
|
|
AFTER INSERT OR UPDATE OR DELETE
|
|
ON public.submission_items
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION public.broadcast_submission_item_changes();
|
|
|
|
CREATE TRIGGER broadcast_report_changes
|
|
AFTER INSERT OR UPDATE OR DELETE
|
|
ON public.reports
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION public.broadcast_report_changes();
|
|
|
|
CREATE TRIGGER broadcast_review_changes
|
|
AFTER INSERT OR UPDATE OR DELETE
|
|
ON public.reviews
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION public.broadcast_review_changes(); |