| 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
 | 
|---|