From d90a685b446df2af610e677b8060d4111caaee45 Mon Sep 17 00:00:00 2001 From: "Infineon\\Mitchem" Date: Fri, 11 Oct 2024 08:54:07 -0700 Subject: [PATCH] PSN group changes and activation now requires both Qual and PreQual signatures. --- LSL2/STPROC/COMM_PROD_SPEC.txt | 85 +++++++++++++++++++++++----------- 1 file changed, 58 insertions(+), 27 deletions(-) diff --git a/LSL2/STPROC/COMM_PROD_SPEC.txt b/LSL2/STPROC/COMM_PROD_SPEC.txt index 5bf6499..d559198 100644 --- a/LSL2/STPROC/COMM_PROD_SPEC.txt +++ b/LSL2/STPROC/COMM_PROD_SPEC.txt @@ -10,6 +10,7 @@ COMPILE FUNCTION Comm_Prod_Spec(Instruction, Parm1,Parm2) equate statement PRS_PROP_UNITS_ORG$. 07/27/2020 - JRO - Updated COL$ Equate for the LS table due to adding new cols. 02/23/2020 - JRO - Added in methods for Parameter checks + 10/10/2024 - DJM - Changed QUOTE_SIGS to Security groups to be tied into AD groups. */ DECLARE SUBROUTINE Set_Property, End_Dialog, Send_Event, Set_Status, Center_Window, Post_Event, obj_Tables @@ -804,6 +805,28 @@ StatusClick: OldStatus = XLATE('PROD_SPEC', PSNo, PROD_SPEC_STATUS$ ,'X') NewStatus = Get_Property(@WINDOW:'.STATUS','DEFPROP') + CtrlID = @WINDOW:'.MODE_CODE' + + ModeArray = Get_Property(CtrlID,'DEFPROP') + + ActivationAllowed = FALSE$ + + BEGIN CASE + CASE ModeArray NE '' + ActivationAllowed = TRUE$ + CASE ModeArray NE '' + ActivationAllowed = TRUE$ + CASE ModeArray NE '' + ActivationAllowed = TRUE$ + CASE ModeArray NE '' + ActivationAllowed = FALSE$ + Error_Services('Add', 'Both the Pre Qual and the Qual signatures must be signed in order for the PSN to be activated.') + CASE 1 + ActivationAllowed = FALSE$ + Error_Services('Add', 'Both the Pre Qual and the Qual signatures must be signed in order for the PSN to be activated.') + END CASE + + IF PSNo = '' THEN RETURN If NewStatus NE OldStatus then IF NewStatus = 'I' THEN @@ -912,18 +935,24 @@ StatusClick: //Activation Parameters Check JRO - 2-24-2021 IF NewStatus = 'A' then - Error_Services('Clear') - MsgStruct = "" - MsgStruct = MSG_WIDTH$ - GoSub ReactorVerification - If Error_Services('NoError') then - GoSub SpecVerification - end - If Error_Services('NoError') then - GoSub ProdVerVerification - end - If Error_Services('NoError') then - GoSub StageVerification + If ActivationAllowed EQ TRUE$ then + Error_Services('Clear') + MsgStruct = "" + MsgStruct = MSG_WIDTH$ + GoSub ReactorVerification + If Error_Services('NoError') then + GoSub SpecVerification + end + If Error_Services('NoError') then + GoSub ProdVerVerification + end + If Error_Services('NoError') then + GoSub StageVerification + end + end else + Set_Property(@WINDOW:'.STATUS','DEFPROP', OldStatus) + Error = Error_Services('GetMessage') + ErrMsg(Error) end end end else @@ -1418,6 +1447,8 @@ SignNextMode: ModeArray = Get_Property(CtrlID,'DEFPROP') + Qualified = FALSE$ + BEGIN CASE CASE ModeArray NE '' ; NextSigPos = '' CASE ModeArray NE '' ; NextSigPos = 4 ; NextMode = ModeArray @@ -1426,17 +1457,17 @@ SignNextMode: CASE 1 ; NextSigPos = 1 ; NextMode = ModeArray END CASE - SigInfo = XLATE('CONFIG','QUOTE_SIGS','','X') BEGIN CASE - CASE NextSigPos = 4 ; QualUsers = SigInfo - CASE NextSigPos = 3 ; QualUsers = SigInfo - CASE NextSigPos = 2 ; QualUsers = SigInfo - CASE NextSigPos = 1 ; QualUsers = SigInfo - CASE 1 ; QualUsers = '' + CASE NextSigPos = 4 ; Qualified = (MemberOf(@USER4,'PSN_PROD')) + CASE NextSigPos = 3 ; Qualified = (MemberOf(@USER4,'PSN_PRE_PROD')) + CASE NextSigPos = 2 ; Qualified = (MemberOf(@USER4,'PSN_QUAL')) + CASE NextSigPos = 1 ; Qualified = (MemberOf(@USER4,'PSN_PRE_QUAL')) + CASE 1 ; Qualified = FALSE$ END CASE + - LOCATE @USER4 IN QualUsers USING @VM SETTING Pos THEN + If Qualified EQ TRUE$ THEN Valid = Dialog_Box( 'QUOTE_SIG_PWD_ENTRY', @WINDOW, @USER4:@VM:XLATE( 'LSL_USERS', @USER4, LSL_USERS_PASSWORD$, 'X' ) ) END ELSE ErrorMsg = 'Current user is not an authorized ':NextMode:' signer.' @@ -1471,6 +1502,8 @@ UnsignCurrMode: ModeArray = Get_Property(CtrlID,'DEFPROP') + Qualified = FALSE$ + BEGIN CASE CASE ModeArray NE '' ; UnsigPos = 4 ; UnsignMode = ModeArray CASE ModeArray NE '' ; UnsigPos = 3 ; UnsignMode = ModeArray @@ -1479,17 +1512,16 @@ UnsignCurrMode: CASE 1 ; UnsigPos = '' END CASE - SigInfo = XLATE('CONFIG','QUOTE_SIGS','','X') BEGIN CASE - CASE UnsigPos = 4 ; QualUsers = SigInfo - CASE UnsigPos = 3 ; QualUsers = SigInfo - CASE UnsigPos = 2 ; QualUsers = SigInfo - CASE UnsigPos = 1 ; QualUsers = SigInfo - CASE 1 ; QualUsers = '' + CASE UnsigPos = 4 ; Qualified = (MemberOf(@USER4,'PSN_PROD')) + CASE UnsigPos = 3 ; Qualified = (MemberOf(@USER4,'PSN_PRE_PROD')) + CASE UnsigPos = 2 ; Qualified = (MemberOf(@USER4,'PSN_QUAL')) + CASE UnsigPos = 1 ; Qualified = (MemberOf(@USER4,'PSN_PRE_QUAL')) + CASE 1 ; Qualified = FALSE$ END CASE - LOCATE @USER4 IN QualUsers USING @VM SETTING Pos THEN + If Qualified EQ TRUE$ THEN Valid = Dialog_Box( 'QUOTE_SIG_PWD_ENTRY', @WINDOW, @USER4:@VM:XLATE( 'LSL_USERS', @USER4, LSL_USERS_PASSWORD$, 'X' ) ) END ELSE ErrorMsg = 'Current user is not an authorized ':UnsignMode:' signer.' @@ -1497,7 +1529,6 @@ UnsignCurrMode: RETURN END - Valid = Dialog_Box( 'QUOTE_SIG_PWD_ENTRY', @WINDOW, @USER4:@VM:XLATE( 'LSL_USERS', @USER4, LSL_USERS_PASSWORD$, 'X' ) ) IF Valid = 1 THEN CurrDate = OCONV(Date(),'D4/')