project BLF > class PAuthentication > method AuthenticateWrapper


Parameters


icLogininputcharacter
icPasswordinputcharacter
ocGlobalSessionIdoutputcharacter
ocClientPrincipalObjectoutputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
method Session.CheckLogin
method Session.ValidateLogin


program code (program1/pauthentication.p)

If oiReturnStatus = 0
Then Assign oiReturnStatus = -98.

Empty Temp-table tASRequestCall.
Empty Temp-table tCompanySetCall.
Empty Temp-table tControlFlagsCall.
Empty Temp-table tDomainSetCall.
Empty Temp-table tSessionTokenCall.

Create tASRequestCall.
Assign 
    tASRequestCall.tcMfgUserId = icLogin
    tASRequestCall.tcPassword  = icPassword.

<M-2 run Authenticate
   (input  tASRequestCall (tASRequest), 
    output dASResponseCall (dASResponse), 
    output viFcReturnSuper (oiReturnStatus)) in PAuthentication>   
    
If viFcReturnSuper <> 0
Then Assign oiReturnStatus = viFcReturnSuper.
If viFcReturnSuper < 0
Then Return.  

Find First tSessionTokenCall No-error.
If Not Available tSessionTokenCall
Then Do:

Assign 
        vcMsg = Trim(#T-3'There is no tSessionTokenCall record returned from the Authenticate procedure.':255(8082)T-3#)
        oiReturnStatus = -1.
    <M-4 run SetMessage
       (input  vcMsg (icMessage), 
        input  '' (icArguments), 
        input  '' (icFieldName), 
        input  '' (icFieldValue), 
        input  'S':U (icType), 
        input  3 (iiSeverity), 
        input  '' (icRowid), 
        input  'BLF-346':U (icFcMsgNumber), 
        input  '' (icFcExplanation), 
        input  '' (icFcIdentification), 
        input  '' (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in PAuthentication>
    Return.
End. /*If Not Available tSessionTokenCall*/

Assign ocGlobalSessionId       = tSessionTokenCall.tcMfgSessionId
       ocClientPrincipalObject = tSessionTokenCall.tcMfgClientPrincipal.

If tSessionTokenCall.tcMfgSessionId = '' 
Then Do:
    Assign vcMsg = Trim(#T-6'An error occurred while authenticating user. Look at the following messages for details.':255(8083)T-6#).
    <M-7 run SetMessage
       (input  vcMsg (icMessage), 
        input  '' (icArguments), 
        input  '' (icFieldName), 
        input  '' (icFieldValue), 
        input  'E':U (icType), 
        input  3 (iiSeverity), 
        input  '' (icRowid), 
        input  'BLF-348':U (icFcMsgNumber), 
        input  '' (icFcExplanation), 
        input  '' (icFcIdentification), 
        input  '' (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in PAuthentication>
        
    For Each tControlFlagsCall:
        assign vcMsg = <M-8 GetMessage
                          (input  tControlFlagsCall.tcResponseCode (icErrorCode)) in PAuthentication>.
                          
        <M-5 run SetMessage
           (input  vcMsg (icMessage), 
            input  '' (icArguments), 
            input  '' (icFieldName), 
            input  '' (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  '' (icRowid), 
            input  'BLF-347':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in PAuthentication>
    End. /*For Each tControlFlagsCall:*/
    
    Assign oiReturnStatus = -1.
    Return.
End. /*If tSessionTokenCall.tcMfgSessionId = '' */

If oiReturnStatus = -98
Then Assign oiReturnStatus = 0.