apres correction et finalisatio de la synchronisation
This commit is contained in:
52
sql/audits/acteur-concerne-audit.sql
Normal file
52
sql/audits/acteur-concerne-audit.sql
Normal file
@@ -0,0 +1,52 @@
|
||||
-- 1️⃣ Créer la table d’audit
|
||||
CREATE TABLE audit.acteur_concerne_audit_log (
|
||||
audit_id SERIAL PRIMARY KEY,
|
||||
acteur_concerne_id BIGINT,
|
||||
action VARCHAR(10),
|
||||
changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
old_data JSONB,
|
||||
new_data JSONB
|
||||
);
|
||||
|
||||
-- 2️⃣ Créer la fonction d’audit
|
||||
CREATE OR REPLACE FUNCTION audit.audit_acteur_concerne_changes()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
IF (TG_OP = 'UPDATE') THEN
|
||||
INSERT INTO audit.acteur_concerne_audit_log (acteur_concerne_id, action, old_data, new_data)
|
||||
VALUES (
|
||||
OLD.id,
|
||||
TG_OP,
|
||||
to_jsonb(OLD),
|
||||
to_jsonb(NEW)
|
||||
);
|
||||
RETURN NEW;
|
||||
ELSIF (TG_OP = 'INSERT') THEN
|
||||
INSERT INTO audit.acteur_concerne_audit_log (acteur_concerne_id, action, new_data)
|
||||
VALUES (
|
||||
NEW.id,
|
||||
TG_OP,
|
||||
to_jsonb(NEW)
|
||||
);
|
||||
RETURN NEW;
|
||||
ELSIF (TG_OP = 'DELETE') THEN
|
||||
INSERT INTO audit.acteur_concerne_audit_log (acteur_concerne_id, action, old_data)
|
||||
VALUES (
|
||||
OLD.id,
|
||||
TG_OP,
|
||||
to_jsonb(OLD)
|
||||
);
|
||||
RETURN OLD;
|
||||
END IF;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- 3️⃣ Créer le trigger
|
||||
CREATE TRIGGER trigger_audit_acteur_concerne
|
||||
AFTER INSERT OR UPDATE OR DELETE ON acteur_concerne
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION audit.audit_acteur_concerne_changes();
|
||||
|
||||
|
||||
GRANT USAGE ON SCHEMA audit TO infocad_user;
|
||||
GRANT INSERT, SELECT ON audit.acteur_concerne_audit_log TO infocad_user;
|
||||
86
sql/audits/enquete-audit.sql
Normal file
86
sql/audits/enquete-audit.sql
Normal file
@@ -0,0 +1,86 @@
|
||||
-- Créer le schéma audit
|
||||
|
||||
CREATE SCHEMA IF NOT EXISTS audit;
|
||||
|
||||
|
||||
-- Créer la table d'audit dans le schéma audit
|
||||
|
||||
CREATE TABLE audit.enquete_audit_log (
|
||||
audit_id SERIAL PRIMARY KEY,
|
||||
enquete_id BIGINT,
|
||||
action VARCHAR(10),
|
||||
changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
old_data JSONB,
|
||||
new_data JSONB
|
||||
);
|
||||
|
||||
-- Créer la fonction dans le schéma audit
|
||||
|
||||
CREATE OR REPLACE FUNCTION audit.audit_enquete_changes()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
IF (TG_OP = 'UPDATE') THEN
|
||||
INSERT INTO audit.enquete_audit_log (enquete_id, action, old_data, new_data)
|
||||
VALUES (
|
||||
OLD.id,
|
||||
TG_OP,
|
||||
to_jsonb(OLD),
|
||||
to_jsonb(NEW)
|
||||
);
|
||||
RETURN NEW;
|
||||
ELSIF (TG_OP = 'INSERT') THEN
|
||||
INSERT INTO audit.enquete_audit_log (enquete_id, action, new_data)
|
||||
VALUES (
|
||||
NEW.id,
|
||||
TG_OP,
|
||||
to_jsonb(NEW)
|
||||
);
|
||||
RETURN NEW;
|
||||
ELSIF (TG_OP = 'DELETE') THEN
|
||||
INSERT INTO audit.enquete_audit_log (enquete_id, action, old_data)
|
||||
VALUES (
|
||||
OLD.id,
|
||||
TG_OP,
|
||||
to_jsonb(OLD)
|
||||
);
|
||||
RETURN OLD;
|
||||
END IF;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
|
||||
|
||||
|
||||
-- Créer le trigger
|
||||
|
||||
CREATE TRIGGER trigger_audit_enquete
|
||||
AFTER INSERT OR UPDATE OR DELETE ON enquete
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION audit.audit_enquete_changes();
|
||||
|
||||
|
||||
-- donner les droits si nécéssaires
|
||||
|
||||
GRANT USAGE ON SCHEMA audit TO infocad_user;
|
||||
GRANT INSERT, SELECT ON audit.enquete_audit_log TO infocad_user;
|
||||
|
||||
|
||||
-- Lister les audits
|
||||
|
||||
SELECT * FROM enquete_audit_log WHERE enquete_id = 42 ORDER BY changed_at DESC;
|
||||
|
||||
SELECT
|
||||
enquete_id,
|
||||
action,
|
||||
changed_at,
|
||||
old_data->>'status_enquete' AS status_before,
|
||||
new_data->>'status_enquete' AS status_after,
|
||||
old_data->>'updated_by' AS updated_by_before,
|
||||
new_data->>'updated_by' AS updated_by_after
|
||||
FROM audit.enquete_audit_log
|
||||
WHERE enquete_id = 5
|
||||
ORDER BY changed_at DESC;
|
||||
|
||||
|
||||
|
||||
|
||||
55
sql/audits/parcelle-audit.sql
Normal file
55
sql/audits/parcelle-audit.sql
Normal file
@@ -0,0 +1,55 @@
|
||||
-- Créer le schéma audit
|
||||
|
||||
CREATE SCHEMA IF NOT EXISTS audit;
|
||||
|
||||
-- 1️⃣ Créer la table d’audit
|
||||
CREATE TABLE audit.parcelle_audit_log (
|
||||
audit_id SERIAL PRIMARY KEY,
|
||||
parcelle_id BIGINT,
|
||||
action VARCHAR(10),
|
||||
changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
old_data JSONB,
|
||||
new_data JSONB
|
||||
);
|
||||
|
||||
-- 2️⃣ Créer la fonction d’audit
|
||||
CREATE OR REPLACE FUNCTION audit.audit_parcelle_changes()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
IF (TG_OP = 'UPDATE') THEN
|
||||
INSERT INTO audit.parcelle_audit_log (parcelle_id, action, old_data, new_data)
|
||||
VALUES (
|
||||
OLD.id,
|
||||
TG_OP,
|
||||
to_jsonb(OLD),
|
||||
to_jsonb(NEW)
|
||||
);
|
||||
RETURN NEW;
|
||||
ELSIF (TG_OP = 'INSERT') THEN
|
||||
INSERT INTO audit.parcelle_audit_log (parcelle_id, action, new_data)
|
||||
VALUES (
|
||||
NEW.id,
|
||||
TG_OP,
|
||||
to_jsonb(NEW)
|
||||
);
|
||||
RETURN NEW;
|
||||
ELSIF (TG_OP = 'DELETE') THEN
|
||||
INSERT INTO audit.parcelle_audit_log (parcelle_id, action, old_data)
|
||||
VALUES (
|
||||
OLD.id,
|
||||
TG_OP,
|
||||
to_jsonb(OLD)
|
||||
);
|
||||
RETURN OLD;
|
||||
END IF;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- 3️⃣ Créer le trigger
|
||||
CREATE TRIGGER trigger_audit_parcelle
|
||||
AFTER INSERT OR UPDATE OR DELETE ON parcelle
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION audit.audit_parcelle_changes();
|
||||
|
||||
GRANT USAGE ON SCHEMA audit TO infocad_user;
|
||||
GRANT INSERT, SELECT ON audit.parcelle_audit_log TO infocad_user;
|
||||
69
sql/audits/personne-audit.sql
Normal file
69
sql/audits/personne-audit.sql
Normal file
@@ -0,0 +1,69 @@
|
||||
-- Créer le schéma audit
|
||||
|
||||
CREATE SCHEMA IF NOT EXISTS audit;
|
||||
|
||||
-- 1️⃣ Créer la table d’audit
|
||||
CREATE TABLE audit.personne_audit_log (
|
||||
audit_id SERIAL PRIMARY KEY,
|
||||
personne_id BIGINT,
|
||||
action VARCHAR(10),
|
||||
changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
old_data JSONB,
|
||||
new_data JSONB
|
||||
);
|
||||
|
||||
-- 2️⃣ Créer la fonction d’audit
|
||||
CREATE OR REPLACE FUNCTION audit.audit_personne_changes()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
IF (TG_OP = 'UPDATE') THEN
|
||||
INSERT INTO audit.personne_audit_log (personne_id, action, old_data, new_data)
|
||||
VALUES (
|
||||
OLD.id,
|
||||
TG_OP,
|
||||
to_jsonb(OLD),
|
||||
to_jsonb(NEW)
|
||||
);
|
||||
RETURN NEW;
|
||||
ELSIF (TG_OP = 'INSERT') THEN
|
||||
INSERT INTO audit.personne_audit_log (personne_id, action, new_data)
|
||||
VALUES (
|
||||
NEW.id,
|
||||
TG_OP,
|
||||
to_jsonb(NEW)
|
||||
);
|
||||
RETURN NEW;
|
||||
ELSIF (TG_OP = 'DELETE') THEN
|
||||
INSERT INTO audit.personne_audit_log (personne_id, action, old_data)
|
||||
VALUES (
|
||||
OLD.id,
|
||||
TG_OP,
|
||||
to_jsonb(OLD)
|
||||
);
|
||||
RETURN OLD;
|
||||
END IF;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- 3️⃣ Créer le trigger
|
||||
CREATE TRIGGER trigger_audit_personne
|
||||
AFTER INSERT OR UPDATE OR DELETE ON personne
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION audit.audit_personne_changes();
|
||||
|
||||
|
||||
|
||||
GRANT USAGE ON SCHEMA audit TO infocad_user;
|
||||
GRANT INSERT, SELECT ON audit.personne_audit_log TO infocad_user;
|
||||
|
||||
SELECT
|
||||
personne_id,
|
||||
action,
|
||||
changed_at,
|
||||
old_data->>'prenom_ou_raison_sociale' AS prenom_before,
|
||||
new_data->>'prenom_ou_raison_sociale' AS prenom_after,
|
||||
old_data->>'updated_by' AS updated_by_before,
|
||||
new_data->>'updated_by' AS updated_by_after
|
||||
FROM audit.personne_audit_log
|
||||
WHERE personne_id = 10
|
||||
ORDER BY changed_at DESC;
|
||||
52
sql/audits/piece-audit.sql
Normal file
52
sql/audits/piece-audit.sql
Normal file
@@ -0,0 +1,52 @@
|
||||
-- 1️⃣ Créer la table d’audit
|
||||
CREATE TABLE audit.piece_audit_log (
|
||||
audit_id SERIAL PRIMARY KEY,
|
||||
piece_id BIGINT,
|
||||
action VARCHAR(10),
|
||||
changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
old_data JSONB,
|
||||
new_data JSONB
|
||||
);
|
||||
|
||||
-- 2️⃣ Créer la fonction d’audit
|
||||
CREATE OR REPLACE FUNCTION audit.audit_piece_changes()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
IF (TG_OP = 'UPDATE') THEN
|
||||
INSERT INTO audit.piece_audit_log (piece_id, action, old_data, new_data)
|
||||
VALUES (
|
||||
OLD.id,
|
||||
TG_OP,
|
||||
to_jsonb(OLD),
|
||||
to_jsonb(NEW)
|
||||
);
|
||||
RETURN NEW;
|
||||
ELSIF (TG_OP = 'INSERT') THEN
|
||||
INSERT INTO audit.piece_audit_log (piece_id, action, new_data)
|
||||
VALUES (
|
||||
NEW.id,
|
||||
TG_OP,
|
||||
to_jsonb(NEW)
|
||||
);
|
||||
RETURN NEW;
|
||||
ELSIF (TG_OP = 'DELETE') THEN
|
||||
INSERT INTO audit.piece_audit_log (piece_id, action, old_data)
|
||||
VALUES (
|
||||
OLD.id,
|
||||
TG_OP,
|
||||
to_jsonb(OLD)
|
||||
);
|
||||
RETURN OLD;
|
||||
END IF;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- 3️⃣ Créer le trigger
|
||||
CREATE TRIGGER trigger_audit_piece
|
||||
AFTER INSERT OR UPDATE OR DELETE ON piece
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION audit.audit_piece_changes();
|
||||
|
||||
|
||||
GRANT USAGE ON SCHEMA audit TO infocad_user;
|
||||
GRANT INSERT, SELECT ON audit.piece_audit_log TO infocad_user;
|
||||
52
sql/audits/upload-audit.sql
Normal file
52
sql/audits/upload-audit.sql
Normal file
@@ -0,0 +1,52 @@
|
||||
-- 1️⃣ Créer la table d’audit
|
||||
CREATE TABLE audit.upload_audit_log (
|
||||
audit_id SERIAL PRIMARY KEY,
|
||||
upload_id BIGINT,
|
||||
action VARCHAR(10),
|
||||
changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
old_data JSONB,
|
||||
new_data JSONB
|
||||
);
|
||||
|
||||
-- 2️⃣ Créer la fonction d’audit
|
||||
CREATE OR REPLACE FUNCTION audit.audit_upload_changes()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
IF (TG_OP = 'UPDATE') THEN
|
||||
INSERT INTO audit.upload_audit_log (upload_id, action, old_data, new_data)
|
||||
VALUES (
|
||||
OLD.id,
|
||||
TG_OP,
|
||||
to_jsonb(OLD),
|
||||
to_jsonb(NEW)
|
||||
);
|
||||
RETURN NEW;
|
||||
ELSIF (TG_OP = 'INSERT') THEN
|
||||
INSERT INTO audit.upload_audit_log (upload_id, action, new_data)
|
||||
VALUES (
|
||||
NEW.id,
|
||||
TG_OP,
|
||||
to_jsonb(NEW)
|
||||
);
|
||||
RETURN NEW;
|
||||
ELSIF (TG_OP = 'DELETE') THEN
|
||||
INSERT INTO audit.upload_audit_log (upload_id, action, old_data)
|
||||
VALUES (
|
||||
OLD.id,
|
||||
TG_OP,
|
||||
to_jsonb(OLD)
|
||||
);
|
||||
RETURN OLD;
|
||||
END IF;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- 3️⃣ Créer le trigger
|
||||
CREATE TRIGGER trigger_audit_upload
|
||||
AFTER INSERT OR UPDATE OR DELETE ON upload
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION audit.audit_upload_changes();
|
||||
|
||||
|
||||
GRANT USAGE ON SCHEMA audit TO infocad_user;
|
||||
GRANT INSERT, SELECT ON audit.upload_audit_log TO infocad_user;
|
||||
Reference in New Issue
Block a user