| 1 | XMXMBOX ;ISC-SF/GMB-Mailbox APIs ;04/17/2002  14:10 | 
|---|
| 2 | ;;8.0;MailMan;;Jun 28, 2002 | 
|---|
| 3 | QMBOX(XMDUZ,XMMSG) ; Message counts for a mailbox | 
|---|
| 4 | K XMERR,^TMP("XMERR",$J) | 
|---|
| 5 | S XMMSG="" | 
|---|
| 6 | I XMDUZ'=DUZ,'$$RPRIV^XMXSEC  Q | 
|---|
| 7 | S XMMSG=$$NEWS^XMXUTIL(XMDUZ) | 
|---|
| 8 | Q | 
|---|
| 9 | FLTRMBOX(XMDUZ,XMMSG) ; Filter all the messages in a user's mailbox. | 
|---|
| 10 | K XMERR,^TMP("XMERR",$J) | 
|---|
| 11 | S XMMSG="" | 
|---|
| 12 | I XMDUZ'=DUZ,'$$RPRIV^XMXSEC Q | 
|---|
| 13 | N XMK | 
|---|
| 14 | S XMK=.99 | 
|---|
| 15 | F  S XMK=$O(^XMB(3.7,XMDUZ,2,XMK)) Q:XMK'>0!(XMDUZ=.5&(XMK>999))  D | 
|---|
| 16 | . D FLTRBSKT^XMXBSKT(XMDUZ,XMK) | 
|---|
| 17 | S XMMSG=$$EZBLD^DIALOG(34306.3) ; Mailbox filtered. | 
|---|
| 18 | Q | 
|---|
| 19 | CRE8MBOX(XMDUZ,XMDATE) ; Create a Mailbox for a user | 
|---|
| 20 | ; XMDUZ  The user's DUZ | 
|---|
| 21 | ; XMDATE The user has been reinstated after not having worked here a | 
|---|
| 22 | ;        while.  Please note the earliest message date which the user | 
|---|
| 23 | ;        may access, and don't let the user access any messages before | 
|---|
| 24 | ;        that date, except for any which someone might forward to the | 
|---|
| 25 | ;        user. | 
|---|
| 26 | ;        =fileman date or any supported date format that FileMan | 
|---|
| 27 | ;         recognizes (The date must be exact.) | 
|---|
| 28 | ;         The user may not access any before this date. | 
|---|
| 29 | ;        =0      - (default) The user may access any old msgs which had | 
|---|
| 30 | ;                  been addressed to the user. | 
|---|
| 31 | K XMERR,^TMP("XMERR",$J) | 
|---|
| 32 | ;I DUZ'=.5,'$$POSTPRIV^XMXSEC Q | 
|---|
| 33 | I '$D(^XMB(3.7,XMDUZ,0)) D | 
|---|
| 34 | . N XMFDA,XMIEN,XMTRIES | 
|---|
| 35 | . S XMFDA(3.7,"+1,",.01)=XMDUZ | 
|---|
| 36 | . S XMIEN(1)=XMDUZ | 
|---|
| 37 | CTRY . D UPDATE^DIE("S","XMFDA","XMIEN") Q:'$D(DIERR) | 
|---|
| 38 | . S XMTRIES=$G(XMTRIES)+1 | 
|---|
| 39 | . I $D(^TMP("DIERR",$J,"E",110)) H 1 G CTRY ; Try again if can't lock | 
|---|
| 40 | D:'$D(^XMB(3.7,XMDUZ,2,.5,0)) MAKEBSKT^XMXBSKT(XMDUZ,.5,$$EZBLD^DIALOG(37004)) ; WASTE | 
|---|
| 41 | D:'$D(^XMB(3.7,XMDUZ,2,1,0)) MAKEBSKT^XMXBSKT(XMDUZ,1,$$EZBLD^DIALOG(37005)) ; IN | 
|---|
| 42 | ; Limit message access at reinstatement? | 
|---|
| 43 | Q:$G(XMDATE)=""!($G(XMDATE)=0) | 
|---|
| 44 | N XMFDA | 
|---|
| 45 | S XMFDA(3.7,XMDUZ_",",1.2)=XMDATE | 
|---|
| 46 | D FILE^DIE("E","XMFDA") | 
|---|
| 47 | Q | 
|---|
| 48 | TERMMBOX(XMDUZ) ; Terminate a user's Mailbox | 
|---|
| 49 | ; (Delete all traces of a user in MailMan) | 
|---|
| 50 | ; XMDUZ  The user's DUZ | 
|---|
| 51 | K XMERR,^TMP("XMERR",$J) | 
|---|
| 52 | I DUZ'=.5,'$$POSTPRIV^XMXSEC Q | 
|---|
| 53 | D TERMINAT^XMUTERM1(XMDUZ) | 
|---|
| 54 | Q | 
|---|