1 | XWBSEC ;SFISC/VYD - RPC BROKER ;09/23/2004 13:01
|
---|
2 | ;;1.1;RPC BROKER;**3,6,10,35**;Mar 28, 1997
|
---|
3 | CHKPRMIT(XWBRP) ;checks to see if remote procedure is permited to run
|
---|
4 | ;Input: XWBRP - Remote procedure to check
|
---|
5 | Q:$$KCHK^XUSRB("XUPROGMODE")
|
---|
6 | N ERR,XWBPRMIT,XWBALLOW
|
---|
7 | S U="^",XWBSEC="" ;Return XWBSEC="" if OK to run RPC
|
---|
8 | ;
|
---|
9 | ;In the beginning, when no DUZ is defined and no context exist, setup
|
---|
10 | ;default signon context
|
---|
11 | S:'$G(DUZ) DUZ=0,XQY0="XUS SIGNON" ;set up default context
|
---|
12 | ;
|
---|
13 | ;These RPC's are allowed in any context, so we can just quit
|
---|
14 | I "^XWB IM HERE^XWB CREATE CONTEXT^XWB RPC LIST^XWB IS RPC AVAILABLE^XUS GET USER INFO^XUS GET TOKEN^"[(U_XWBRP_U) Q
|
---|
15 | ;VistAlink RPC's that are always allowed.
|
---|
16 | I "^XUS KAAJEE GET USER INFO^XUS KAAJEE LOGOUT^"[(U_XWBRP_U) Q
|
---|
17 | ;
|
---|
18 | ;If in Signon context, only allow XUS and XWB rpc's
|
---|
19 | I $G(XQY0)="XUS SIGNON","^XUS^XWB^"'[(U_$E(XWBRP,1,3)_U) S XWBSEC="Application context has not been created!" Q
|
---|
20 | ;XQCS allows all users access to the XUS SIGNON context.
|
---|
21 | ;Also to any context in the XUCOMMAND menu.
|
---|
22 | ;
|
---|
23 | I $G(XQY0)'="" D ;1.1*6. XQY0="" after XUS SIGNON context deleted.
|
---|
24 | . S XWBALLOW=$$CHK^XQCS(DUZ,$P(XQY0,U),XWBRP) ;do the check
|
---|
25 | . S:'XWBALLOW XWBSEC=XWBALLOW
|
---|
26 | E S XWBSEC="Application context has not been created!"
|
---|
27 | Q
|
---|
28 | ;
|
---|
29 | ;
|
---|
30 | CRCONTXT(RESULT,OPTION) ;creates context for the passed in option
|
---|
31 | K XQY0,XQY N XWB1,XABPGMOD,XWBPGMOD S RESULT=0
|
---|
32 | S OPTION=$$DECRYP^XUSRB1(OPTION) ;S:OPTION="" OPTION="\"
|
---|
33 | I OPTION="" S XQY=0,XQY0="",RESULT=1 Q ;delete context if "" passed in.
|
---|
34 | S XWB1=$$OPTLK^XQCS(OPTION)
|
---|
35 | I XWB1="" S (XWBSEC,RESULT)="The context '"_OPTION_"' does not exist on server." Q ;P10
|
---|
36 | S RESULT=$$CHK^XQCS(DUZ,XWB1)
|
---|
37 | ;Access or programmer
|
---|
38 | S XWBPGMOD=$$KCHK^XUSRB("XUPROGMODE")
|
---|
39 | I RESULT!XWBPGMOD S XQY0=OPTION,XQY=XWB1,RESULT=1
|
---|
40 | E S XWBSEC=RESULT
|
---|
41 | Q
|
---|
42 | ;
|
---|
43 | ;
|
---|
44 | STATE(%) ;Return a state value
|
---|
45 | Q:'$L($G(%)) $G(XWBSTATE)
|
---|
46 | Q $G(XWBSTATE(%))
|
---|
47 | ;
|
---|
48 | ;
|
---|
49 | SET(%,VALUE) ;Set the state variable
|
---|
50 | I $G(%)="" S XWBSTATE=VALUE
|
---|
51 | S XWBSTATE(%)=VALUE
|
---|
52 | Q
|
---|
53 | KILL(%) ;Kill state variable
|
---|
54 | I $L($G(%)) K XWBSTATE(%)
|
---|
55 | Q
|
---|