Added in notifications to desired steps. Made a change to OI Wizard Authentication methods to use a server rather than a calculated column.

This commit is contained in:
Infineon\Ouellette
2025-01-20 14:05:52 -07:00
committed by Ouellette Jonathan (CSC FI SPS MESLEO)
parent a269f2f6cf
commit 585f54f547
2 changed files with 125 additions and 26 deletions

View File

@ -6,7 +6,7 @@ $insert OI_WIZARD_TRANSACTIONS_EQUATES
$Insert REACT_MODE_NG_EQUATES
Declare function RTI_CreateGUID, Database_Services, Error_Services, SRP_Json, MemberOf
Declare function OI_Wizard_Services, Reactor_Services, Reactor_Modes_Services
Declare function OI_Wizard_Services, Reactor_Services, Reactor_Modes_Services, Datetime
Declare subroutine Database_Services, Error_Services, SRP_Json, Service_Services
GoToService
@ -186,17 +186,30 @@ end service
Service ValidateSession(OIWizardID)
ErrorMsg = ''
If OIWizardID NE '' then
OIWizardRec = Database_Services('ReadDataRow', 'OI_WIZARD', OIWizardID)
OIWizardRec = Database_Services('ReadDataRow', 'OI_WIZARD', OIWizardID, True$, 0, False$)
If Error_Services('NoError') then
ValidSession = Xlate('OI_WIZARD', OIWizardID, 'VALID', 'X')
If ValidSession then
// Set session updated time and date to extend session life.
OIWizardRec<OI_WIZARD.UPDATED_DATES$, -1> = Date()
OIWizardRec<OI_WIZARD.UPDATED_TIMES$, -1> = Time()
Database_Services('WriteDataRow', 'OI_WIZARD', OIWizardID, OIWizardRec)
If Error_Services('HasError') then ErrorMsg = Error_Services('GetMessage')
SessionTerminated = OIWizardRec<OI_WIZARD.TERMINATED$>
if Not(SessionTerminated) then
LastDate = OIWizardRec<OI_WIZARD.UPDATED_DATES$>[-1, 'B' : @VM]
LastTime = OIWizardRec<OI_WIZARD.UPDATED_TIMES$>[-1, 'B' : @VM]
If LastDate EQ '' then
// No updates have occured so use the Create Date/Time.
LastDate = OIWizardRec<OI_WIZARD.CREATED_DATE$>
LastTime = OIWizardRec<OI_WIZARD.CREATED_TIME$>
end
lastDateTime = Iconv(Oconv(LastDate, 'D4/') : ' ' : Oconv(LastTime, 'MTS'), 'DTS')
SessionAge = (Datetime() - lastDateTime) * 86400
// 600 seconds = 10 minutes
If SessionAge LT 600 then
OIWizardRec<OI_WIZARD.UPDATED_DATES$, -1> = Date()
OIWizardRec<OI_WIZARD.UPDATED_TIMES$, -1> = Time()
Database_Services('WriteDataRow', 'OI_WIZARD', OIWizardID, OIWizardRec)
If Error_Services('HasError') then ErrorMsg = Error_Services('GetMessage')
end else
ErrorMsg = 'Session has expired'
end
end else
ErrorMsg = 'Expired session.'
ErrorMsg = 'Session has been previously terminated.'
end
end else
ErrorMsg = Error_Services('GetMessage')
@ -211,18 +224,37 @@ Service ValidateSession(OIWizardID)
Error_Services('Add', ErrorMsg)
Response = False$
end
end service
/*
This routine validates a users session without extending it. Used for OI Wizard sessions that are awaiting input.
*/
Service ValidateSessionIdle(OIWizardID)
ErrorMsg = ''
If OIWizardID NE '' then
Valid = Xlate('OI_WIZARD', OIWizardID, 'VALID', 'X')
If Not(Valid) then
ErrorMsg = 'Invalid or expired session'
OIWizardRec = Database_Services('ReadDataRow', 'OI_WIZARD', OIWizardID, True$, 0, False$)
If Error_Services('NoError') then
SessionTerminated = OIWizardRec<OI_WIZARD.TERMINATED$>
if Not(SessionTerminated) then
LastDate = OIWizardRec<OI_WIZARD.UPDATED_DATES$>[-1, 'B' : @VM]
LastTime = OIWizardRec<OI_WIZARD.UPDATED_TIMES$>[-1, 'B' : @VM]
If LastDate EQ '' then
// No updates have occured so use the Create Date/Time.
LastDate = OIWizardRec<OI_WIZARD.CREATED_DATE$>
LastTime = OIWizardRec<OI_WIZARD.CREATED_TIME$>
end
lastDateTime = Iconv(Oconv(LastDate, 'D4/') : ' ' : Oconv(LastTime, 'MTS'), 'DTS')
SessionAge = (Datetime() - lastDateTime) * 86400
// 600 seconds = 10 minutes
If SessionAge GE 600 then
ErrorMsg = 'Session has expired'
end else
end
end else
ErrorMsg = 'Session has been previously terminated.'
end
end else
ErrorMsg = Error_Services('GetMessage')
end
end else
ErrorMsg = 'Error in ':Service:' service. Null OIWizardID passed in.'
@ -231,7 +263,6 @@ Service ValidateSessionIdle(OIWizardID)
If ErrorMsg EQ '' then
Response = True$
end else
debug
Error_Services('Add', ErrorMsg)
Response = False$
end