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