From: Jean-Marc Pigeon (Delson) Date: Wed, 9 Jul 2025 16:49:02 +0000 (-0400) Subject: trigger defition for MYSQL database is working X-Git-Tag: tag-0.13~7 X-Git-Url: https://jmp-git.ovh.safe.ca/?a=commitdiff_plain;h=2b77af8d015aa486d345c1a34d8513515845da08;p=jmp%2Fmailleur trigger defition for MYSQL database is working --- diff --git a/sql/mailleur.sql b/sql/mailleur.sql index 9624da2..8cb8e48 100644 --- a/sql/mailleur.sql +++ b/sql/mailleur.sql @@ -42,18 +42,13 @@ #define CRYPTED MEDIUMBLOB #endif -//defining the password trigger according database type -//Caution this REALM value MUST be the same as defined -//in mailleur.conf -#define REALM 'mailleur-email' - /********************************************************/ /********************************************************/ /* */ /* User available email definition table */ /* */ /********************************************************/ -//table to define LOCAL user +//table to define LOCAL USER CREATE TABLE emails ( creation DBTIMESTAMP //record creation DFLT NOW(), @@ -70,20 +65,6 @@ GRANT SELECT,INSERT,UPDATE,DELETE ON emails TO mailapache; GRANT SELECT ON emails TO maildove; -#ifdef POSTGRESQL -CREATE FUNCTION updpass() - RETURNS trigger AS $$ - BEGIN - NEW.hash = md5(concat (NEW.email,':',REALM,':',NEW.hash)); - RETURN NEW; - END - $$ LANGUAGE 'plpgsql'; - -CREATE TRIGGER keephash - BEFORE INSERT OR UPDATE on emails - FOR EACH ROW EXECUTE PROCEDURE updpass(); -#endif - //table about session CREATE TABLE sessions ( creation DBTIMESTAMP //record creation @@ -111,3 +92,39 @@ CREATE TABLE actions ( info TEXT //line info ); GRANT SELECT ON sessions TO mailapache; + + +//-------------------------------------------------------------- +//Defining TRIGGER fonctions according database type +//-------------------------------------------------------------- +//Caution this REALM value MUST be the same as defined +//in mailleur.conf +#define REALM 'mailleur-email' +#define HASHING concat(NEW.email,':',REALM,':',NEW.hash) + + +#ifdef POSTGRESQL +CREATE FUNCTION updpass() + RETURNS trigger AS $$ + BEGIN + NEW.hash = md5(HASHING); + RETURN NEW; + END + $$ LANGUAGE 'plpgsql'; + +CREATE TRIGGER keephash + BEFORE INSERT OR UPDATE on emails + FOR EACH ROW EXECUTE PROCEDURE updpass(); +#endif + +#if defined(MYSQL) || defined(MYSQLI) + +CREATE TRIGGER sethash + BEFORE UPDATE ON emails FOR EACH ROW + set NEW.hash=MD5(HASHING); + +CREATE TRIGGER updhash + BEFORE INSERT ON emails FOR EACH ROW + set NEW.hash=MD5(HASHING); + +#endif