X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=database%2Ffunctions%2Fuser_password.sql;fp=database%2Ffunctions%2Fuser_password.sql;h=889e49ebb233790592400e7978bd7ef92bda6e01;hb=ab1ec1721c11a109546e162f87488db7dcfb9108;hp=0000000000000000000000000000000000000000;hpb=662008b9ac4dff24044f7e406e1c79217d67367b;p=ndwebbie.git diff --git a/database/functions/user_password.sql b/database/functions/user_password.sql new file mode 100644 index 0000000..889e49e --- /dev/null +++ b/database/functions/user_password.sql @@ -0,0 +1,17 @@ +CREATE OR REPLACE FUNCTION user_password() RETURNS trigger + AS $_X$ +DECLARE +BEGIN + IF COALESCE(NEW.password <> OLD.password,TRUE) AND + NOT NEW.password SIMILAR TO '$2a$\d+$[a-zA-Z0-9./]+' + THEN + NEW.password := crypt(NEW.password,gen_salt('bf',10)); + END IF; + RETURN NEW; +END; +$_X$ LANGUAGE plpgsql; + +/* +alter table users alter COLUMN password drop not null ; +CREATE TRIGGER user_password BEFORE UPDATE OR INSERT ON users FOR EACH ROW EXECUTE PROCEDURE user_password() +*/