]> SAFE projects GIT repository - jmp/mailleur/commitdiff
trigger defition for MYSQL database is working
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Wed, 9 Jul 2025 16:49:02 +0000 (12:49 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Wed, 9 Jul 2025 16:49:02 +0000 (12:49 -0400)
sql/mailleur.sql

index 9624da2b0b56abfc48371d1b0fc7574e72f10900..8cb8e488584eb1df6df097b49a13c10b0dbc1205 100644 (file)
 #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