From: Michael Andreen Date: Sun, 15 Jan 2017 11:15:42 +0000 (+0100) Subject: Fix password trigger X-Git-Url: https://ruin.nu/git/?p=ndwebbie.git;a=commitdiff_plain;h=d786ab3e431fdb29854f4d80fe430c5438d649b6 Fix password trigger --- 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,