[1147] | 1 | BMXMSEC ; IHS/OIT/HMW - BMXNet MONITOR ; 4/6/11 4:41pm
|
---|
| 2 | ;;4.1000;BMX;;Apr 17, 2011
|
---|
| 3 | ;;
|
---|
| 4 | ; Changes by WV/SMH for *1000 (Feb 2 2010)
|
---|
| 5 | ; Changes: SETUP now gets GT.M IP depending on ^%ZOSF("OS")
|
---|
| 6 | ; --> in IP("GTM-IP") per XWBTCPM model.
|
---|
| 7 | ;
|
---|
| 8 | CHKPRMID(BMXRP) ;EP - checks to see if remote procedure is permited to run
|
---|
| 9 | ;D DEBUG^%Serenji("CHKPRMID^BMXMSEC(BMXRP)")
|
---|
| 10 | Q
|
---|
| 11 | ;
|
---|
| 12 | CHKPRMIT(BMXRP) ;EP - checks to see if remote procedure is permited to run
|
---|
| 13 | ;Input: BMXRP - Remote procedure to check
|
---|
| 14 | Q:$$KCHK("XUPROGMODE")
|
---|
| 15 | N ERR,BMXALLOW
|
---|
| 16 | S U="^",BMXSEC="" ;clear
|
---|
| 17 | ;
|
---|
| 18 | ;In the beginning, when no DUZ is defined and no context exist, setup
|
---|
| 19 | ;default signon context
|
---|
| 20 | S:'$G(DUZ) DUZ=0,XQY0="XUS SIGNON" ;set up default context
|
---|
| 21 | S:'$L($G(XQY0)) XQY0="BMXRPC"
|
---|
| 22 | ;
|
---|
| 23 | ; Next 2 lines new in BMX 4
|
---|
| 24 | S XWBSTATE("ALLCTX",XQY0)=1 ; LOCAL ARRAY REMEMBERING ALL APPCONTEXTS USED FOR THIS SESSION
|
---|
| 25 | I DUZ D ADDCTXT(DUZ,"BMXRPC") ; IN DIRECT MODE, CHECK USER APP CTXT PERMISSION AND, IF NECESSARY, APPEND THE RPC NODES IN ^TMP("XQCS",$J
|
---|
| 26 | ;
|
---|
| 27 | I BMXRP'="XWB IM HERE",BMXRP'="XWB CREATE CONTEXT",BMXRP'="XUS AV CODE",BMXRP'="XWB RPC LIST",BMXRP'="BMX AV CODE" D ;check exemptions. new exemption for XWB*1.1*6 - dpc
|
---|
| 28 | . I $G(XQY0)'="" D
|
---|
| 29 | . . S BMXALLOW=$$CHK^XQCS(DUZ,$P(XQY0,U),BMXRP) ;do the check
|
---|
| 30 | . . S:'BMXALLOW BMXSEC=BMXALLOW
|
---|
| 31 | . E S BMXSEC="Application context has not been created!"
|
---|
| 32 | Q
|
---|
| 33 | ;
|
---|
| 34 | OWNSKEY(RET,LIST) ;EP Does user have Key
|
---|
| 35 | N I,K S I=""
|
---|
| 36 | I $G(DUZ)'>0 S RET(0)=0 Q
|
---|
| 37 | I $O(LIST(""))="" S RET(0)=$$KCHK(LIST) Q
|
---|
| 38 | F S I=$O(LIST(I)) Q:I="" S RET(I)=$$KCHK(LIST(I))
|
---|
| 39 | Q
|
---|
| 40 | KCHK(%) Q $S($G(DUZ)>0:$D(^XUSEC(%,DUZ)),1:0) ;EP Key Check
|
---|
| 41 | ;
|
---|
| 42 | ;
|
---|
| 43 | SETUP(RET) ;EP - sets up environment for GUI signon
|
---|
| 44 | ;
|
---|
| 45 | K ^TMP("XQCS",$J)
|
---|
| 46 | S:^%ZOSF("OS")["GT.M" IO("IP")=IO("GTM-IP")
|
---|
| 47 | S:^%ZOSF("OS")["OpenM" IO("IP")=$P
|
---|
| 48 | D ZIO^%ZIS4 ;IHS/OIT/HMW SAC Exemption Applied For
|
---|
| 49 | D SET1(0),SET^BMXMSEC("XUS XOPT",XOPT),SET^BMXMSEC("XUS CNT",0)
|
---|
| 50 | S %ZIS="0H",IOP="NULL" D ^%ZIS
|
---|
| 51 | ;0=server name, 1=volume, 2=uci, 3=device, 4=# attempts, 5=skip signon-screen
|
---|
| 52 | S RET(0)=$P(XUENV,U,3),RET(1)=$P(XUVOL,U),RET(2)=XUCI
|
---|
| 53 | S RET(3)=$I,RET(4)=$P(XOPT,U,2),RET(5)=0 ;IHS/OIT/HMW SAC Exemption Applied For
|
---|
| 54 | I $$INHIBIT() Q
|
---|
| 55 | Q
|
---|
| 56 | ;
|
---|
| 57 | SET1(FLAG) ;Setup parameters
|
---|
| 58 | D GETENV^%ZOSV S U="^",XUENV=Y,XUCI=$P(Y,U,1),XQVOL=$P(Y,U,2),XUEON=^%ZOSF("EON"),XUEOFF=^("EOFF")
|
---|
| 59 | S X=$O(^XTV(8989.3,1,4,"B",XQVOL,0)),XUVOL=$S(X>0:^XTV(8989.3,1,4,X,0),1:XQVOL_"^y^1") S:$P(XUVOL,U,6)="y" XRTL=XUCI_","_XQVOL
|
---|
| 60 | S XOPT=$S($D(^XTV(8989.3,1,"XUS")):^("XUS"),1:"") F I=2:1:15 I $P(XOPT,U,I)="" S $P(XOPT,U,I)=$P("^5^900^1^1^^^^1^300^^^^N^90",U,I)
|
---|
| 61 | Q
|
---|
| 62 | ;
|
---|
| 63 | INHIBIT() ;Is Logon to this system Inhibited?
|
---|
| 64 | I $G(^%ZIS(14.5,"LOGON",XQVOL)) Q 1
|
---|
| 65 | I $D(^%ZOSF("ACTJ")) X ^("ACTJ") I $P(XUVOL,U,3),($P(XUVOL,U,3)'>Y) Q 2
|
---|
| 66 | Q 0
|
---|
| 67 | ;
|
---|
| 68 | NOW S U="^",XUNOW=$$NOW^XLFDT(),DT=$P(XUNOW,"."),XUDEV=0
|
---|
| 69 | Q
|
---|
| 70 | ;
|
---|
| 71 | STATE(%) ;Return a state value
|
---|
| 72 | ;XWBSTATE is required by XUSRB
|
---|
| 73 | Q:'$L($G(%)) $G(XWBSTATE)
|
---|
| 74 | Q $G(XWBSTATE(%))
|
---|
| 75 | ;
|
---|
| 76 | ;
|
---|
| 77 | SET(%,VALUE) ;Set the state variable
|
---|
| 78 | I $G(%)="" S XWBSTATE=VALUE
|
---|
| 79 | S XWBSTATE(%)=VALUE
|
---|
| 80 | Q
|
---|
| 81 | KILL(%) ;Kill state variable
|
---|
| 82 | I $L($G(%)) K XWBSTATE(%)
|
---|
| 83 | Q
|
---|
| 84 | ;
|
---|
| 85 | ;
|
---|
| 86 | ADDCTXT(XQUSR,XCONTEXT) ; SUPPORTS DIRECT MODE IN BMX
|
---|
| 87 | N XQMES,XQRPC,X,Y,Z,%,XQOPT,TMP
|
---|
| 88 | S TMP=$NA(^TMP("XQCS",$J))
|
---|
| 89 | S XQOPT=$O(^DIC(19,"B",XCONTEXT,0)) I 'XQOPT Q
|
---|
| 90 | S XQRPC=$O(^DIC(19,XQOPT,"RPC","B",0)) I 'XQRPC Q
|
---|
| 91 | I $D(@TMP@(XQRPC)) Q ; ITS ALREADY IN THERE ; NOTHING MORE TO DO
|
---|
| 92 | S XQMES=1
|
---|
| 93 | D USER^XQCS I 'XQMES Q ; USER DOES NOT POSSES THIS APP CONTEXT
|
---|
| 94 | S XQRPC=0
|
---|
| 95 | F S XQRPC=$O(^DIC(19,XQOPT,"RPC","B",XQRPC)) Q:'XQRPC S @TMP@(XQRPC,0)=XQRPC
|
---|
| 96 | Q
|
---|
| 97 | ;
|
---|