]> SAFE projects GIT repository - jmp/mailleur/commitdiff
are trigger ready?
authorJean-Marc Pigeon <jmp@safe.c>
Fri, 14 Nov 2025 19:28:12 +0000 (14:28 -0500)
committerJean-Marc Pigeon <jmp@safe.c>
Fri, 14 Nov 2025 19:28:12 +0000 (14:28 -0500)
sql/mailleur.sql

index c2ca5856e5b08fe7e77b387ba4a42f2224580315..fbf3b3189b32f451f1a3fd16c03931618cc0a451 100644 (file)
@@ -176,14 +176,15 @@ CREATE TABLE admins       (
 CREATE FUNCTION updpass()
   RETURNS trigger AS $$
   BEGIN
-    IF NEW.password IS NULL OR length(trim(NEW.password)) = 0 THEN     
-      RETURN NEW;
-    END IF;
-    IF substring(NEW.password,1,1) = '$' THEN
-      RETURN NEW;
+    IF NEW.password IS NULL OR 
+       length(trim(NEW.password)) = 0 OR
+       substring(NEW.password,1,1) = '$' THEN
+      set NEW.hash=NULL;
+      set NEW.password=NEW.password;
+    ELSE
+      NEW.hash = md5(HASHING);
+      NEW.password = crypt (NEW.password,gen_salt('md5'));
     END IF;
-  NEW.hash = md5(HASHING);
-  NEW.password = crypt (NEW.password,gen_salt('md5'));
   END;
   $$ LANGUAGE 'plpgsql';
 
@@ -201,7 +202,8 @@ CREATE TRIGGER sethash
   BEGIN 
     IF NEW.password IS NULL OR 
        LENGTH(TRIM(NEW.password))=0 OR
-       LEFT(NEW.password,1) != '$' THEN
+       LEFT(NEW.password,1) = '$' THEN
+      set NEW.hash=NULL;
       set NEW.password=NEW.password;
     else 
       set NEW.hash=MD5(HASHING);
@@ -215,7 +217,8 @@ CREATE TRIGGER updhash
   BEGIN
     IF NEW.password IS NULL OR 
        LENGTH(TRIM(NEW.password))=0 OR
-       LEFT(NEW.password,1) != '$' THEN
+       LEFT(NEW.password,1) = '$' THEN
+      set NEW.hash=NULL;
       set NEW.password=NEW.password;
     else 
       set NEW.hash=MD5(HASHING);