mirror of
https://codeberg.org/likwid/likwid.git
synced 2026-02-10 13:33:09 +00:00
18 lines
732 B
MySQL
18 lines
732 B
MySQL
|
|
-- Fix moderation ledger delete protection: missing allow_ledger_delete setting must default to false
|
||
|
|
|
||
|
|
CREATE OR REPLACE FUNCTION ledger_prevent_delete()
|
||
|
|
RETURNS TRIGGER AS $$
|
||
|
|
BEGIN
|
||
|
|
-- Allow deletion only by superuser (for legal compliance like GDPR)
|
||
|
|
IF NOT COALESCE(current_setting('likwid.allow_ledger_delete', true), 'false')::boolean THEN
|
||
|
|
RAISE EXCEPTION 'Moderation ledger entries cannot be deleted. Set likwid.allow_ledger_delete = true for legal compliance deletions.';
|
||
|
|
END IF;
|
||
|
|
|
||
|
|
-- Log the deletion attempt
|
||
|
|
INSERT INTO ledger_deletion_log (entry_id, deleted_by, reason)
|
||
|
|
VALUES (OLD.id, current_user, current_setting('likwid.deletion_reason', true));
|
||
|
|
|
||
|
|
RETURN OLD;
|
||
|
|
END;
|
||
|
|
$$ LANGUAGE plpgsql;
|