====== pears.NetForgottenPassword ====== Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace. ===== Original SQL ===== create procedure "pears"."NetForgottenPassword"( in "pWebUserID" char(20),in "login_email" char(150) ) result( "retval" char(255) ) // IQXWeb begin declare "PersID" char(20); set "PersID" = (select top 1 "IQXNetUserID" from "IQXNetUser" where "EmailAddress" = "login_email" order by "LoginID" asc); if "isnull"("PersID",'') <> '' then if(select top 1 "value" from "iqxnetswitch" where "iqxnetswitchid" = 'PWD_RESET_EXP_INT') = 1 then update "IQXNetUser" set "PasswordSet" = 2,"expirydate" = "dateadd"("dd",3,"today"()) where "IQXNetUserID" = "PersID" else update "IQXNetUser" set "PasswordSet" = 2 where "IQXNetUserID" = "PersID" end if; select '0:~success' else select '0:~success' -- For security reasons - surpress the Login not found information dialog. end if end /* TEST call NetTestSetup(''); update iqxnetuserlink set employmentid=null where IQXNetUserLinkID in ('test.client','test.agency','test.candidate','test.owner'); update iqxnetuserlink set employmentid='TEST' where IQXNetUserLinkID='test.client'; update iqxnetuser set loginid='test@test.com',emailaddress='test@test.com' where iqxnetuserid=(select top 1 iqxnetuserid from iqxnetuserlink where personid='TEST'); select * from NetForgottenPassword(null,null); expect 100:*; select * from NetForgottenPassword(null,'test@test.com'); expect 0:*; select * from NetForgottenPassword('TEST.Client',null); expect 100:*; select * from NetForgottenPassword('TEST.Client','z'); expect 100:*; select * from NetForgottenPassword('TEST.Client','zz@test.com'); expect 100:*; select * from NetForgottenPassword('TEST.Client','test@test.com'); expect 0:*; select passwordset from iqxnetuser where iqxnetuserid=(select top 1 iqxnetuserid from iqxnetuserlink where personid='TEST'); expect passwordset=2; expect EOF; update iqxnetuser set emailaddress=null,passwordset=1 where iqxnetuserid=(select top 1 iqxnetuserid from iqxnetuserlink where personid='TEST'); */ /* DOC 2016-08-25 PC test routine and documentation 2017-02-24 PC change incoming param to 150, and change to loginid from emailaddress 2017-11-02 PC change to set expiry day 2018-08-27 PC improve error handler 2019-06-19 GJ Surpressed the "Login not found" message as it may be a security concern. tests: null pWebUserID and null login_email null pWebUserID and valid login_email empty login_email invalid login_email incorrect login_email correct login_email */ go COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetForgottenPassword" IS {create PROCEDURE pears."NetForgottenPassword"(in pWebUserID char(20),in login_email char(150)) result(retval char(255)) // IQXWeb begin declare PersID char(20); set PersID=(select top 1 IQXNetUserID from IQXNetUser where EmailAddress = login_email order by LoginID); if isnull(PersID,'') <> '' then if (select top 1 value from iqxnetswitch where iqxnetswitchid='PWD_RESET_EXP_INT') = 1 then update IQXNetUser set PasswordSet = 2,expirydate = dateadd(dd,3,today()) where IQXNetUserID = PersID; else update IQXNetUser set PasswordSet = 2 where IQXNetUserID = PersID; end if; select '0:~success' else select '0:~success' -- For security reasons - surpress the Login not found information dialog. end if end /* TEST call NetTestSetup(''); update iqxnetuserlink set employmentid=null where IQXNetUserLinkID in ('test.client','test.agency','test.candidate','test.owner'); update iqxnetuserlink set employmentid='TEST' where IQXNetUserLinkID='test.client'; update iqxnetuser set loginid='test@test.com',emailaddress='test@test.com' where iqxnetuserid=(select top 1 iqxnetuserid from iqxnetuserlink where personid='TEST'); select * from NetForgottenPassword(null,null); expect 100:*; select * from NetForgottenPassword(null,'test@test.com'); expect 0:*; select * from NetForgottenPassword('TEST.Client',null); expect 100:*; select * from NetForgottenPassword('TEST.Client','z'); expect 100:*; select * from NetForgottenPassword('TEST.Client','zz@test.com'); expect 100:*; select * from NetForgottenPassword('TEST.Client','test@test.com'); expect 0:*; select passwordset from iqxnetuser where iqxnetuserid=(select top 1 iqxnetuserid from iqxnetuserlink where personid='TEST'); expect passwordset=2; expect EOF; update iqxnetuser set emailaddress=null,passwordset=1 where iqxnetuserid=(select top 1 iqxnetuserid from iqxnetuserlink where personid='TEST'); */ /* DOC 2016-08-25 PC test routine and documentation 2017-02-24 PC change incoming param to 150, and change to loginid from emailaddress 2017-11-02 PC change to set expiry day 2018-08-27 PC improve error handler 2019-06-19 GJ Surpressed the "Login not found" message as it may be a security concern. tests: null pWebUserID and null login_email null pWebUserID and valid login_email empty login_email invalid login_email incorrect login_email correct login_email */ }