7 use Phinx\Migration\AbstractMigration;
18 print
"Converting hcumbrlogintrack\n";
22 CREATE OR REPLACE FUNCTION hcumbrlogintrack(cucode character, member character, mustchange character, pwlastchange timestamp with time zone, product character, usermfaquest character varying, OUT logtime character) RETURNS character 34 homecuuserstable varchar(24); 37 * SET CU USERS TABLE VALUE 39 homecuuserstable := lower(cucode) || 'user'; 42 * Get cuadmin record for given credit union 44 SELECT INTO results * FROM cuadmin WHERE cu = cucode; 45 IF results.tz is null OR trim(results.tz) = '' THEN 47 ELSIF position('/' IN results.tz) > 0 THEN 50 tz:='US/' || results.tz; 52 IF results.retrylimit = 0 OR results.retrylimit IS NULL THEN 55 retries:=results.retrylimit; 57 IF results.gracelimit = 0 OR results.gracelimit IS NULL THEN 60 grace:=results.gracelimit; 62 IF results.pwdays IS NULL THEN 65 pwdays:=results.pwdays; 67 EXECUTE 'set time zone ' || quote_literal(tz); 68 logtime:=to_char(now(),'YYYY/MM/DD HH24:MI:SS'); 69 ym:=to_char(now(),'YYYYMM'); 71 * CHECK FOR EXISTENCE OF TABLE IN PG TABLE? 73 IF EXISTS (SELECT relname FROM pg_class WHERE relname = quote_ident(homecuuserstable)) 77 EXECUTE FORMAT('UPDATE %I ' 78 || 'SET failedremain=%L, ' 79 || ' priorlogin=lastlogin, ' 80 || ' forceremain=(forceremain - 1), ' 82 || ' challenge_quest_id=%L, ' 84 || 'WHERE user_name = %L;', homecuuserstable, retries, logtime, 0, userMfaQuest, member); 87 IF pwdays > 0 AND pwlastchange < (now()- \"interval\"(pwdays || ' days')) THEN 88 EXECUTE FORMAT('UPDATE %I ' 89 || 'SET failedremain=%L, ' 90 || ' priorlogin=lastlogin, ' 92 || ' forcechange=%L, ' 93 || ' forceremain=%L, ' 94 || ' challenge_quest_id=%L, ' 96 || 'WHERE user_name = %L;', homecuuserstable, retries, logtime, 'Y', grace, 0, userMfaQuest, member); 98 EXECUTE FORMAT('UPDATE %I ' 99 || 'SET failedremain=%L, ' 100 || ' priorlogin=lastlogin, ' 102 || ' challenge_quest_id=%L, ' 104 || 'WHERE user_name = %L;', homecuuserstable, retries, logtime, 0, userMfaQuest, member); 108 /* ** ERROR -- SHOULDN'T BE HERE. */ 111 EXECUTE 'set time zone ' || quote_literal('US/Mountain'); 116 $rows = $this->query( $sql );
125 public function down()
128 print
"Converting hcumbrlogintrack\n";
132 CREATE OR REPLACE FUNCTION hcumbrlogintrack(cucode character, member character, mustchange character, pwlastchange timestamp with time zone, product character, usermfaquest character varying, OUT logtime character) RETURNS character 144 homecuuserstable varchar(24); 147 * SET CU USERS TABLE VALUE 149 homecuuserstable := lower(cucode) || 'user'; 152 * Get cuadmin record for given credit union 154 SELECT INTO results * FROM cuadmin WHERE cu = cucode; 155 IF results.tz is null OR trim(results.tz) = '' THEN 157 ELSIF position('/' IN results.tz) > 0 THEN 160 tz:='US/' || results.tz; 162 IF results.retrylimit = 0 OR results.retrylimit IS NULL THEN 165 retries:=results.retrylimit; 167 IF results.gracelimit = 0 OR results.gracelimit IS NULL THEN 170 grace:=results.gracelimit; 172 IF results.pwdays IS NULL THEN 175 pwdays:=results.pwdays; 177 EXECUTE 'set time zone ' || quote_literal(tz); 178 logtime:=to_char(now(),'YYYY/MM/DD HH24:MI:SS'); 179 ym:=to_char(now(),'YYYYMM'); 180 UPDATE culogtrack SET logins=logins +1 181 WHERE cu=cucode AND accountnumber=member AND yearmo=ym AND hcucode=product; 182 get diagnostics rec_affected = ROW_COUNT; 183 IF rec_affected = 0 THEN 184 INSERT INTO culogtrack values (cucode, member, ym, 1, product); 187 * CHECK FOR EXISTENCE OF TABLE IN PG TABLE? 189 IF EXISTS (SELECT relname FROM pg_class WHERE relname = quote_ident(homecuuserstable)) 193 EXECUTE FORMAT('UPDATE %I ' 194 || 'SET failedremain=%L, ' 195 || ' priorlogin=lastlogin, ' 196 || ' forceremain=(forceremain - 1), ' 198 || ' challenge_quest_id=%L, ' 200 || 'WHERE user_name = %L;', homecuuserstable, retries, logtime, 0, userMfaQuest, member); 203 IF pwdays > 0 AND pwlastchange < (now()- \"interval\"(pwdays || ' days')) THEN 204 EXECUTE FORMAT('UPDATE %I ' 205 || 'SET failedremain=%L, ' 206 || ' priorlogin=lastlogin, ' 208 || ' forcechange=%L, ' 209 || ' forceremain=%L, ' 210 || ' challenge_quest_id=%L, ' 212 || 'WHERE user_name = %L;', homecuuserstable, retries, logtime, 'Y', grace, 0, userMfaQuest, member); 214 EXECUTE FORMAT('UPDATE %I ' 215 || 'SET failedremain=%L, ' 216 || ' priorlogin=lastlogin, ' 218 || ' challenge_quest_id=%L, ' 220 || 'WHERE user_name = %L;', homecuuserstable, retries, logtime, 0, userMfaQuest, member); 224 /* ** ERROR -- SHOULDN'T BE HERE. */ 227 EXECUTE 'set time zone ' || quote_literal('US/Mountain'); 232 $rows = $this->query( $sql );