1 CREATE OR REPLACE FUNCTION user_password() RETURNS trigger
5 IF COALESCE(NEW.password <> OLD.password,TRUE) AND
6 NOT NEW.password SIMILAR TO '$2a$\d+$[a-zA-Z0-9./]+'
8 NEW.password := crypt(NEW.password,gen_salt('bf',10));
12 $_X$ LANGUAGE plpgsql;
15 alter table users alter COLUMN password drop not null ;
16 CREATE TRIGGER user_password BEFORE UPDATE OR INSERT ON users FOR EACH ROW EXECUTE PROCEDURE user_password()