| 1 | XMVSURR ;ISC-SF/GMB-Surrogate management ;04/19/2002  11:32 | 
|---|
| 2 | ;;8.0;MailMan;;Jun 28, 2002 | 
|---|
| 3 | ; Replaces ^XMA7 (ISC-WASH/RJ/THM/CAP) | 
|---|
| 4 | ; Entry points used by MailMan options (not covered by DBIA): | 
|---|
| 5 | ; SHARE    XMSHARE  - Become SHARED,MAIL | 
|---|
| 6 | ; ASSUME   XMASSUME - Become another user | 
|---|
| 7 | SHARE ; Assume the identity of SHARED,MAIL | 
|---|
| 8 | Q:'$$CHKOK | 
|---|
| 9 | S XMDUZ=.6 | 
|---|
| 10 | D SURROGAT^XMVVITAE(XMDUZ,.XMV,.XMDUN,"",.XMPRIV) | 
|---|
| 11 | D HEADER^XM | 
|---|
| 12 | D MANAGE^XMJBM | 
|---|
| 13 | D SELF | 
|---|
| 14 | Q | 
|---|
| 15 | CHKOK() ; | 
|---|
| 16 | I $D(^XUSEC("XMNOPRIV",DUZ)) D  Q 0 | 
|---|
| 17 | . N XMTEXT  ;You have been given the XMNOPRIV key | 
|---|
| 18 | . W $C(7) ;and may not become anyone's surrogate. | 
|---|
| 19 | . D BLD^DIALOG(38053,"","","XMTEXT","F") | 
|---|
| 20 | . D MSG^DIALOG("WE","","","","XMTEXT") | 
|---|
| 21 | D CHECK^XMVVITAE | 
|---|
| 22 | Q 1 | 
|---|
| 23 | SELF ; | 
|---|
| 24 | D SELF^XMVVITAE | 
|---|
| 25 | W $C(7),!,$$EZBLD^DIALOG(38054),! ;You are now yourself again. | 
|---|
| 26 | D HEADER^XM | 
|---|
| 27 | Q | 
|---|
| 28 | ASSUME ; Assume someone else's identity | 
|---|
| 29 | I '$D(^XMB(3.7,"AB",DUZ)) D SHARE Q | 
|---|
| 30 | Q:'$$CHKOK | 
|---|
| 31 | D LISTEM | 
|---|
| 32 | N DIC,Y | 
|---|
| 33 | S DIC(0)="AEMQZ" | 
|---|
| 34 | S D="B^BB^C^D" | 
|---|
| 35 | S DIC="^VA(200," | 
|---|
| 36 | S DIC("W")="D SHOWPRIV^XMVSURR(Y)" | 
|---|
| 37 | S DIC("S")="I Y=.6!$D(^XMB(3.7,""AB"",DUZ,Y))" | 
|---|
| 38 | I XMDUZ=DUZ D | 
|---|
| 39 | . S DIC("B")=$$NAME^XMXUTIL(.6) ; SHARED,MAIL | 
|---|
| 40 | E  D | 
|---|
| 41 | . N XMTEXT | 
|---|
| 42 | . S DIC("S")=DIC("S")_"!(Y=DUZ),Y'=XMDUZ" | 
|---|
| 43 | . S DIC("B")=XMV("DUZ NAME") | 
|---|
| 44 | . ;You may select yourself to resume your own identity. | 
|---|
| 45 | . D BLD^DIALOG(38055,"","","XMTEXT","F") | 
|---|
| 46 | . D MSG^DIALOG("WE","","","","XMTEXT") | 
|---|
| 47 | D MIX^DIC1 I Y=-1!$D(DUOUT)!$D(DTOUT) Q | 
|---|
| 48 | S XMDUZ=+Y | 
|---|
| 49 | I XMDUZ=DUZ D SELF Q | 
|---|
| 50 | I XMDUZ=.6 D SHARE Q | 
|---|
| 51 | D OTHER^XMVVITAE | 
|---|
| 52 | D HEADER^XM | 
|---|
| 53 | Q | 
|---|
| 54 | LISTEM ; List surrogates a user may become | 
|---|
| 55 | N XMDUZ | 
|---|
| 56 | W !,$$EZBLD^DIALOG(38056) ;Choose from: | 
|---|
| 57 | S XMDUZ=0 | 
|---|
| 58 | F  S XMDUZ=$O(^XMB(3.7,"AB",DUZ,XMDUZ)) Q:'XMDUZ  W !,?3,$E($$NAME^XMXUTIL(XMDUZ),1,32) D SHOWPRIV(XMDUZ) | 
|---|
| 59 | W !,?3,$$NAME^XMXUTIL(.6) D SHOWPRIV(.6) W ! | 
|---|
| 60 | Q | 
|---|
| 61 | SHOWPRIV(XMDUZ) ; | 
|---|
| 62 | Q:XMDUZ=DUZ | 
|---|
| 63 | I XMDUZ=.6 W ?37,$$EZBLD^DIALOG(38048) Q  ;Read Privilege | 
|---|
| 64 | N XMPRIV,XMNEW | 
|---|
| 65 | S XMPRIV=$P($G(^XMB(3.7,XMDUZ,9,+$O(^XMB(3.7,"AB",DUZ,XMDUZ,0)),0)),U,2,3) | 
|---|
| 66 | I XMPRIV'["y" W ?37,$$EZBLD^DIALOG(38046) Q  ;No Privileges | 
|---|
| 67 | I $L(XMPRIV,"y")>2 W ?37,$$EZBLD^DIALOG(38047) ;Read and Send Privileges | 
|---|
| 68 | E  W ?37,$$EZBLD^DIALOG($S($P(XMPRIV,U)["y":38048,1:38049)) ; Read/Send Privilege | 
|---|
| 69 | S XMNEW=$$TNMSGCT^XMXUTIL(XMDUZ) | 
|---|
| 70 | W " ",$J($$EZBLD^DIALOG($S(XMNEW:38052,1:38051),XMNEW),79-$X) ; x/No New Msgs | 
|---|
| 71 | Q | 
|---|