#ifdef POSTGRESQL
CREATE FUNCTION updpass()
RETURNS trigger AS $$
- DECLARE skip BOOLEAN := FALSE;
BEGIN
- SELECT skip_password_trigger INTO skip
- FROM temp_skip_flag limit 1;
- IF skip = FALSE THEN
- NEW.hash = md5(HASHING);
- NEW.password = crypt (NEW.password,gen_salt('md5'));
- ELSE
- NEW.password = NEW.password;
- END if;
- RETURN NEW;
+ 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;
+ END IF;
+ NEW.hash = md5(HASHING);
+ NEW.password = crypt (NEW.password,gen_salt('md5'));
END;
$$ LANGUAGE 'plpgsql';
CREATE TRIGGER sethash
BEFORE UPDATE ON emails FOR EACH ROW
BEGIN
- DECLARE skip BOOLEAN DEFAULT FALSE;
- SELECT IFNULL(MAX(skip_password_trigger),FALSE) INTO skip
- FROM temp_skip_flag;
- IF skip = FALSE THEN
+ IF NEW.password IS NULL OR
+ LENGTH(TRIM(NEW.password))=0 OR
+ LEFT(NEW.password,1) != '$' THEN
+ THEN
+ set NEW.password=NEW.password;
+ else
set NEW.hash=MD5(HASHING);
set NEW.password=encrypt(NEW.password,concat('$1$',md5(rand())));
- ELSE
- set NEW.password=NEW.password;
END IF;
END$$
CREATE TRIGGER updhash
BEFORE INSERT ON emails FOR EACH ROW
BEGIN
- DECLARE skip BOLLEAN DEFAULT FALSE;
- SELECT IFNULL(MAX(skip_password_trigger),FALSE) INTO skip
- FROM temp_skip_flag;
- IF skip = FALSE THEN
+ IF NEW.password IS NULL OR
+ LENGTH(TRIM(NEW.password))=0 OR
+ LEFT(NEW.password,1) != '$' THEN
+ THEN
+ set NEW.password=NEW.password;
+ else
set NEW.hash=MD5(HASHING);
set NEW.password=encrypt(NEW.password,concat('$1$',md5(rand())));
- ELSE
- set NEW.password=NEW.password;
END IF;
END$$
/* */
/********************************************************/
-CREATE TEMPORARY TABLE temp_skip_flag (
- skip_password_trigger BOOLEAN
- );
-
-INSERT INTO temp_skip_flag VALUES (TRUE);
/********************************************************/
/* */
/* Creating the bare minimun user configuration */
/* Preset value completed */
/* */
/********************************************************/
-DELETE FROM temp_skip_flag;