* 
* 
* COMPONENT:  STD_FORM                             
* 
* 
FUNCTION OPTIONS(*DIRECT)

BEGIN_COM ROLE(*EXTENDS #PRIM_FORM) BORDERICONS(SystemMenu) CAPTION('User Information') CLIENTHEIGHT(326) CLIENTWIDTH(492) FORMSTYLE(StayOnTop) FRAMESTYLE(Dialog) HEIGHT(360) LEFT(405) TOP(111)

DEFINE_COM CLASS(#PRIM_GPBX) NAME(#GPBX_UserInfo) DISPLAYPOSITION(2) ENABLED(False) HEIGHT(153) LEFT(2) PARENT(#COM_OWNER) TABPOSITION(2) TABSTOP(False) TOP(0) WIDTH(487)
DEFINE_COM CLASS(#PRIM_PHBN) NAME(#PHBN_Close) BUTTONDEFAULT(True) CAPTION('Close') DISPLAYPOSITION(1) LEFT(351) PARENT(#COM_OWNER) TABPOSITION(1) TOP(296) WIDTH(137)
DEFINE_COM CLASS(#STD_TEXTL.Visual) NAME(#PRVSIGNON) CAPTION('Previous sign-on') DISPLAYPOSITION(1) HEIGHT(25) LABELTYPE(Caption) LEFT(16) MARGINLEFT(100) PARENT(#GPBX_UserInfo) TABPOSITION(1) TOP(80) USEPICKLIST(False) WIDTH(217)
DEFINE_COM CLASS(#STD_TEXTL.Visual) NAME(#USERNAME) DISPLAYPOSITION(2) HEIGHT(25) LABELPOSITION(None) LEFT(240) MARGINLEFT(0) PARENT(#GPBX_UserInfo) TABPOSITION(2) TOP(16) USEPICKLIST(False) WIDTH(233)
DEFINE_COM CLASS(#STD_TEXTL.Visual) NAME(#ATTEMPTS) CAPTION('Sign-on attempts') DISPLAYPOSITION(3) HEIGHT(25) LABELTYPE(Caption) LEFT(16) MARGINLEFT(100) PARENT(#GPBX_UserInfo) TABPOSITION(3) TOP(112) USEPICKLIST(False) WIDTH(150)
DEFINE_COM CLASS(#STD_TEXTL.Visual) NAME(#USRSTATUS) CAPTION('Status') DISPLAYPOSITION(4) HEIGHT(25) LABELTYPE(Caption) LEFT(16) MARGINLEFT(100) PARENT(#GPBX_UserInfo) TABPOSITION(4) TOP(48) USEPICKLIST(False) WIDTH(217)
DEFINE_COM CLASS(#STD_TEXTL.Visual) NAME(#PWDCHGDTE) CAPTION('Previous password change') DISPLAYPOSITION(1) HEIGHT(25) LABELTYPE(Caption) LEFT(16) PARENT(#GPBX_Password) TABPOSITION(1) TOP(24) USEPICKLIST(False) WIDTH(273)
DEFINE_COM CLASS(#STD_TEXTL.Visual) NAME(#PWDEXPITV) CAPTION('Password expiry interval (days)') DISPLAYPOSITION(2) HEIGHT(25) LABELTYPE(Caption) LEFT(16) PARENT(#GPBX_Password) TABPOSITION(2) TOP(56) USEPICKLIST(False) WIDTH(209)
DEFINE_COM CLASS(#STD_TEXTL.Visual) NAME(#PWDEXPDTE) CAPTION('Password expiry date') DISPLAYPOSITION(5) HEIGHT(25) LABELTYPE(Caption) LEFT(16) PARENT(#GPBX_Password) TABPOSITION(5) TOP(88) USEPICKLIST(False) WIDTH(273)
DEFINE_COM CLASS(#STD_TEXTL.Visual) NAME(#PWDREMDAY) CAPTION('expires in') DISPLAYPOSITION(3) HEIGHT(25) LABELTYPE(Caption) LEFT(320) MARGINLEFT(50) PARENT(#GPBX_Password) TABPOSITION(3) TOP(88) USEPICKLIST(False) WIDTH(125)
DEFINE_COM CLASS(#PRIM_LABL) NAME(#LABL_DAYS) CAPTION('days') DISPLAYPOSITION(4) HEIGHT(25) LEFT(448) PARENT(#GPBX_Password) TABPOSITION(4) TABSTOP(False) TOP(88) VERTICALALIGNMENT(Center) WIDTH(25)
DEFINE_COM CLASS(#PRIM_GPBX) NAME(#GPBX_Password) CAPTION('Password Info') DISPLAYPOSITION(3) ENABLED(False) HEIGHT(129) LEFT(0) PARENT(#COM_OWNER) TABPOSITION(3) TABSTOP(False) TOP(160) WIDTH(489)
DEFINE_COM CLASS(#USER.Visual) NAME(#USER) CAPTION('User') DISPLAYPOSITION(5) HEIGHT(25) LABELTYPE(Caption) LEFT(16) MARGINLEFT(100) PARENT(#GPBX_UserInfo) TABPOSITION(5) TOP(16) USEPICKLIST(False) WIDTH(217)
DEFINE FIELD(#RETURN) REFFLD(#STD_CODE1)

GROUP_BY NAME(#UI_PARMS) FIELDS(#USER #PRVSIGNON #ATTEMPTS #USRSTATUS #PWDCHGDTE #PWDEXPITV #PWDEXPDTE #PWDREMDAY #USERNAME #MSGID)

EVTROUTINE HANDLING(#com_owner.Initialize)
SET COM(#com_owner) CAPTION(*component_desc)
ENDROUTINE

MTHROUTINE NAME(OpenForm)
DEFINE_MAP FOR(*INPUT) CLASS(#VF_ELSRVN) NAME(#uServerLUName)
DEFINE_MAP FOR(*INPUT) CLASS(#VF_ELUSER) NAME(#uUserProfile)
DEFINE_MAP FOR(*INPUT) CLASS(#VF_ELUSER) NAME(#uPassword)
DEFINE_MAP FOR(*OUTPUT) CLASS(#RETCODE) NAME(#uReturnCode)

DEFINE FIELD(#PRVDATE) REFFLD(#STD_COD10)
DEFINE FIELD(#PRVTIME) REFFLD(#STD_CODE8)

#SERVERNME := #uServerLUName
#USER := #uUserProfile
#PWD_CUR := #uPassword

* Connect with iSeries - Normal User
USE BUILTIN(DISCONNECT_SERVER) WITH_ARGS(#SERVERNME) TO_GET(#RETCODE)
USE BUILTIN(DEFINE_ANY_SERVER) WITH_ARGS(#SERVERNME #SERVERNME Y *default *default Y '20' QEBCDIC QASCII) TO_GET(#RETCODE)
USE BUILTIN(SET_SESSION_VALUE) WITH_ARGS('USER=' #USER)
USE BUILTIN(CONNECT_SERVER) WITH_ARGS(#SERVERNME #PWD_CUR) TO_GET(#retcode #STD_DESCS #STD_NUM10)

USE BUILTIN(CLR_MESSAGES)

IF (#RETCODE = ER)
* Not authorized
MESSAGE MSGTXT('You are not authorized to view this user information.')
#uReturnCode := #RETCODE
RETURN
ENDIF

* Connect with iSeries - Superuser
USE BUILTIN(DISCONNECT_SERVER) WITH_ARGS(#SERVERNME) TO_GET(#RETCODE)
USE BUILTIN(DEFINE_ANY_SERVER) WITH_ARGS(#SERVERNME #SERVERNME Y *default *default Y '20' QEBCDIC QASCII) TO_GET(#RETCODE)
USE BUILTIN(SET_SESSION_VALUE) WITH_ARGS('USER=' SUPERUSER)
USE BUILTIN(CONNECT_SERVER) WITH_ARGS(#SERVERNME SUPERPASWOORD) TO_GET(#retcode #STD_DESCS #STD_NUM10)

USE BUILTIN(CLR_MESSAGES)

* Retrieve user information
EXCHANGE FIELDS(#UI_PARMS)
USE BUILTIN(CALL_SERVER_FUNCTION) WITH_ARGS(#SERVERNME RTVUSRI Y Y) TO_GET(#IO$STS)
#PRVSIGNON := #PRVSIGNON.SubString( 2, 6 ).AsDate( YYMMDD ).Asdisplaystring( DDsMMsCCYY ) + ' ' + #PRVSIGNON.SubString( 8, 6 ).Astime( HHMMSS ).AsString
IF (#PWDREMDAY = '-1')
#PWDREMDAY := 'more than 7'
ENDIF

#COM_OWNER.Left := 280
#COM_OWNER.Top := 150

#COM_OWNER.ShowModalForm

ENDROUTINE

EVTROUTINE HANDLING(#PHBN_Close.Click)
#COM_OWNER.CloseForm
ENDROUTINE

END_COM
