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