]> ruin.nu Git - ndwebbie.git/blob - database/functions/user_password.sql
c15cc00226acf607ac4eb5e15d248560014d4265
[ndwebbie.git] / database / functions / user_password.sql
1 CREATE OR REPLACE FUNCTION user_password() RETURNS trigger
2     AS $_X$
3 DECLARE
4         old_password TEXT;
5 BEGIN
6         IF TG_OP = 'UPDATE'
7         THEN
8                 old_password := OLD.password;
9         END IF;
10         IF COALESCE(NEW.password <> old_password,TRUE) AND
11                 NOT NEW.password SIMILAR TO '$2a$\d+$[a-zA-Z0-9./]+'
12         THEN
13                 NEW.password := crypt(NEW.password,gen_salt('bf',10));
14         END IF;
15         RETURN NEW;
16 END;
17 $_X$ LANGUAGE plpgsql;
18
19 /*
20 alter table users alter COLUMN password drop not null ;
21 CREATE TRIGGER user_password BEFORE UPDATE OR INSERT ON users FOR EACH ROW EXECUTE PROCEDURE user_password()
22 */