From: Jean-Marc Pigeon Date: Fri, 14 Nov 2025 15:26:53 +0000 (-0500) Subject: Working with chatgpt about les trigger de database X-Git-Tag: tag-0.17~24 X-Git-Url: https://jmp-git.ovh.safe.ca/?a=commitdiff_plain;h=de0b28a6deb213e9884b10ed98aa8c39796dab61;p=jmp%2Fmailleur Working with chatgpt about les trigger de database --- diff --git a/sql/mailleur.sql b/sql/mailleur.sql index 8d3426d..76f2963 100644 --- a/sql/mailleur.sql +++ b/sql/mailleur.sql @@ -175,10 +175,11 @@ CREATE TABLE admins ( #ifdef POSTGRESQL CREATE FUNCTION updpass() RETURNS trigger AS $$ - DECLARE skip INT := 0; + DECLARE skip BOOLEAN := FALSE; BEGIN - skip := current_setting('skip_password_trigger', true)::int; - IF skip = 0 THEN + SELECT COALESCE(MAX(skip_password_trigger),FALSE) INTO skip + FROM temp_skip_flag; + IF skip = FALSE THEN NEW.hash = md5(HASHING); NEW.password = crypt (NEW.password,gen_salt('md5')); ELSE @@ -200,9 +201,10 @@ DELIMITER $$ CREATE TRIGGER sethash BEFORE UPDATE ON emails FOR EACH ROW BEGIN - DECLARE skip INT DEFAULT 0; - SET skip = skip_password_trigger; - IF skip = 0 THEN + DECLARE skip BOOLEAN DEFAULT FALSE; + SELECT IFNULL(MAX(skip_password_trigger),FALSE) INTO skip + FROM temp_skip_flag; + IF skip = FALSE THEN set NEW.hash=MD5(HASHING); set NEW.password=encrypt(NEW.password,concat('$1$',md5(rand()))); ELSE @@ -214,9 +216,10 @@ CREATE TRIGGER sethash CREATE TRIGGER updhash BEFORE INSERT ON emails FOR EACH ROW BEGIN - DECLARE skip INT DEFAULT 0; - SET skip = skip_password_trigger; - IF skip = 0 THEN + DECLARE skip BOLLEAN DEFAULT FALSE; + SELECT IFNULL(MAX(skip_password_trigger),FALSE) INTO skip + FROM temp_skip_flag; + IF skip = FALSE THEN set NEW.hash=MD5(HASHING); set NEW.password=encrypt(NEW.password,concat('$1$',md5(rand()))); ELSE diff --git a/sql/preset.sql b/sql/preset.sql index 049e921..42b2a78 100644 --- a/sql/preset.sql +++ b/sql/preset.sql @@ -6,8 +6,11 @@ /* */ /********************************************************/ -//to update password the literal way -SET skip_password_trigger = '1'; +CREATE TEMPORARY TABLE temp_skip_flag ( + skip_password_trigger BOOLEAN + ); + +INSERT INTO temp_skip_flag VALUES (TRUE); /********************************************************/ /* */ /* Creating the bare minimun user configuration */ @@ -26,4 +29,5 @@ INSERT INTO emails (email,password) /* Preset value completed */ /* */ /********************************************************/ -RESET skip_password_trigger; +DELETE FROM temp_skip_flag; +