project BLF > class PAuthentication > method Authenticate

Description

Authentication of a user in mfg/pro


Parameters


tASRequestinputtemp-table
dASResponseoutputdataset
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
method PAuthentication.AuthenticateWrapper


program code (program1/pauthentication.p)

If oiReturnStatus = 0
Then Assign oiReturnStatus = -98.

empty temp-table ttAsRequest.
empty temp-table ttSessionToken.
empty temp-table ttDomainSet.
empty temp-table ttCompanySet.
empty temp-table ttControlFlags.

for each tASRequest:
    create ttAsRequest.
    assign ttAsRequest.tt_userid   = tASRequest.tcMfgUserId
           ttAsRequest.tt_password = tASRequest.tcPassword.
end.

assign vhIn = dataset dsAsRequest:handle
       vhOut = dataset dsAsResponse:handle
       vhInOut = ?.
       
Create Dataset vhInOut in widget-pool "non-persistent".
vhInOut:name = "CallService".
  
<M-1 run CallService
   (input  '':U (icProgramName), 
    input  'authenticate':U (icMethodName), 
    input  vhIn By-reference (izInput), 
    input-output vhInOut By-reference (bzInputOutput), 
    input-output vhOut By-reference (bzOutput), 
    input  '' (icAsyncHandler), 
    output viFcReturnSuper (oiReturnStatus)) in PAuthentication>
      
If viFcReturnSuper <> 0
Then Assign oiReturnStatus = viFcReturnSuper.
If viFcReturnSuper < 0
then do:
    delete object vhInOut.
    return.
end.

empty temp-table tCompanySet.
empty temp-table tControlFlags.
empty temp-table tDomainSet.
empty temp-table tSessionToken.

for each  ttSessionToken :    
    create tSessionToken.
    assign tSessionToken.tcMfgSessionId       = ttSessionToken.tt_session_id
           tSessionToken.tcMfgClientPrincipal = ttSessionToken.tt_client_principal.
end.
for each ttDomainSet:     
    create tDomainSet.
    assign tDomainSet.tcDomName = ttDomainSet.tt_dom_name
           tDomainSet.tcDomType = ttDomainSet.tt_dom_type
           tDomainSet.tcUddDomain = ttDomainSet.tt_udd_domain
           tDomainSet.tlUddPrimary = ttDomainSet.tt_udd_primary.
end.
for each ttCompanySet.     
    create tCompanySet.
    assign tCompanySet.tcUcdEntity = ttCompanySet.tt_ucd_entity
           tCompanySet.tcUcdUserId = ttCompanySet.tt_ucd_userid
           tCompanySet.tcUddDomain = ttCompanySet.tt_ucd_domain
           tCompanySet.tlUcdPrimary = ttCompanySet.tt_ucd_primary.
end.

for each ttControlFlags:     
    create tControlFlags.
    assign tControlFlags.tcResponseCode = ttControlFlags.tt_responseCode
           tControlFlags.tiPasswordWillExpire = ttControlFlags.tt_passwdWillExpire
           tControlFlags.tlDisplayUserId = ttControlFlags.tt_displayUserId
           tControlFlags.tlForcedPasswordChange = ttControlFlags.tt_forcedPasswordChange
           tControlFlags.tlOptionalPasswordChange = ttControlFlags.tt_optionalPasswordChange .
end.

delete object vhInOut.

If oiReturnStatus = -98
Then Assign oiReturnStatus = 0.