From d786ab3e431fdb29854f4d80fe430c5438d649b6 Mon Sep 17 00:00:00 2001 From: Michael Andreen Date: Sun, 15 Jan 2017 12:15:42 +0100 Subject: [PATCH] Fix password trigger --- database/functions/user_password.sql | 7 ++++++- database/ndawn.sql | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/database/functions/user_password.sql b/database/functions/user_password.sql index 889e49e..c15cc00 100644 --- a/database/functions/user_password.sql +++ b/database/functions/user_password.sql @@ -1,8 +1,13 @@ CREATE OR REPLACE FUNCTION user_password() RETURNS trigger AS $_X$ DECLARE + old_password TEXT; BEGIN - IF COALESCE(NEW.password <> OLD.password,TRUE) AND + IF TG_OP = 'UPDATE' + THEN + old_password := OLD.password; + END IF; + 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)); diff --git a/database/ndawn.sql b/database/ndawn.sql index 40722c2..5234e0b 100644 --- a/database/ndawn.sql +++ b/database/ndawn.sql @@ -1001,7 +1001,7 @@ CREATE TABLE users ( uid integer NOT NULL, username citext NOT NULL, pid integer, - password text NOT NULL, + password text, attack_points numeric(3,0) DEFAULT 0 NOT NULL, defense_points numeric(4,1) DEFAULT 0 NOT NULL, scan_points numeric(5,0) DEFAULT 0 NOT NULL, -- 2.39.2