XMUTERM ;ISC-SF/GMB-Delete Mailbox/Delete Message ;04/17/2002 12:08
;;8.0;MailMan;;Jun 28, 2002
; Taken from XUSTERM (SEA/AMF/WDE)
; Entry points used by MailMan options (not covered by DBIA):
; ALL1 XMMGR-TERMINATE-MANY
; ALL2 XMMGR-TERMINATE-SUGGEST
; CHOOSE XMMGR-TERMINATE-ONE
; MESSAGE XMMGR-PURGE-MESSAGE
MESSAGE ; Manager chooses messages to purge
N DIR,XMABORT,XMZ,XMKILL,XMPARM
Q:$$NOTAUTH()
W @IOF
D BLD^DIALOG(36301,"","","","F")
D MSG^DIALOG("WM","",IOM)
;This option enables you to purge any message.
;Purge means:
;-delete the message from all user mailboxes
;-delete the message from the MESSAGE file ^XMB(3.9
;-delete all responses from the MESSAGE file ^XMB(3.9
;-delete the message from the MESSAGES TO BE NEW AT A LATER DATE file ^XMB(3.73
;Purge is not reversible. The message is gone forever.
F S XMZ=$O(^XMB(3.9,":"),-1) Q:XMZ?1N.N K ^XMB(3.9,XMZ) ; kill bogus nodes
S (XMABORT,XMKILL)=0
F D Q:XMABORT
. W !
. S DIR(0)="NO^1:"_$O(^XMB(3.9,":"),-1)_":0^D CHKMSG^XMUTERM(Y)",DIR("A")=$$EZBLD^DIALOG(36302) ; Purge MESSAGE
. S DIR("?")=$$EZBLD^DIALOG(36303) ; This response must be a message number
. D ^DIR K DIR I $D(DIRUT) S XMABORT=1 Q
. S XMZ=+Y
. S DIR(0)="Y",DIR("A")=$$EZBLD^DIALOG(36304),DIR("B")=$$EZBLD^DIALOG(39053) ; Are you sure / NO
. D ^DIR K DIR I 'Y!$D(DIRUT) W !,$$EZBLD^DIALOG(36305) Q ;Message not purged.
. S (XMKILL("MSG"),XMKILL("RESP"))=0
. D KILL^XMA32A(XMZ,.XMKILL,XMABORT)
. S XMPARM(1)=XMKILL("MSG"),XMPARM(2)=XMKILL("RESP")
. W !!,$$EZBLD^DIALOG(36306,.XMPARM) ; XMKILL("MSG") message and XMKILL("RESP") response(s) purged.
. S XMKILL=XMKILL+XMKILL("MSG")+XMKILL("RESP")
Q
CHKMSG(XMZ) ;
I '$D(^XMB(3.9,XMZ)) K X Q
W " ",$P($G(^XMB(3.9,XMZ,0)),U,1)
Q
ALL1 ; MailMan chooses users to remove from MailMan
; (Users who shouldn't have mailboxes.)
N XMTEST,DIR,XMABORT,XMCUTOFF,XMGRACE
Q:$$NOTAUTH()
S XMABORT=0
W @IOF
D BLD^DIALOG(36309,"","","","F")
;This option goes through the MailBox global and deletes the user's mailbox if
D HELP1
D BLD^DIALOG(36309.5,"","","","F")
;However, if the user meets one of the last two conditions above, but has a
;forwarding address, the user's mailbox will not be deleted. The fact will be
;noted, and the user should be investigated further.
;
D MSG^DIALOG("WM","",IOM)
D CUTOFF(1,.XMGRACE,.XMCUTOFF,.XMABORT) Q:XMABORT
S DIR(0)="SO^"_$$EZBLD^DIALOG(36321)_";"_$$EZBLD^DIALOG(36322) ; T:Test Mode only;R:Real Mode
S DIR("B")=$P($$EZBLD^DIALOG(36321),":",2) ; Test Mode only
S DIR("A")=$$EZBLD^DIALOG(36323) ; Select Run Option
D BLD^DIALOG(36324,"","","DIR(""?"")","F")
;'Real Mode' will remove qualifying users from MailMan.
;'Test Mode' will not.
;Select 'Test Mode' to see who would be removed.
;Select 'Real Mode' to remove them.
D ^DIR Q:$D(DIRUT)
S XMTEST=$S(X="R":0,1:1)
S (ZTSAVE("XMTEST"),ZTSAVE("XMCUTOFF"),ZTSAVE("XMGRACE"))=""
W !
D BLD^DIALOG(36325,"","","","F")
D MSG^DIALOG("WM","",IOM)
;This report may take a while. You might consider spooling it.
D EN^XUTMDEVQ("ALL1TASK^XMUTERM1",$$EZBLD^DIALOG(36326),.ZTSAVE) ; MailMan: Remove user Mailboxes
Q
ALL2 ; MailMan reports on users who maybe should be removed from MailMan
; (Users who haven't logged on in a while.)
N XMTEST,DIR,XMABORT,XMCUTOFF,XMGRACE
Q:$$NOTAUTH()
S XMABORT=0
W @IOF
D BLD^DIALOG(36312,"","","","F")
;This option goes through the MailBox global and reports if
D HELP2
D BLD^DIALOG(36314,"","","","F")
;This option does not delete any mailboxes. Use the XM-TERMINATE-ONE-USER
;option to delete any user mailboxes identified in this report.
D MSG^DIALOG("WM","",IOM)
D CUTOFF(2,.XMGRACE,.XMCUTOFF,.XMABORT) Q:XMABORT
S ZTSAVE("XMCUTOFF")=""
W !
D BLD^DIALOG(36325,"","","","F")
D MSG^DIALOG("WM","",IOM)
;This report may take a while. You might consider spooling it.
D EN^XUTMDEVQ("ALL2TASK^XMUTERM1",$$EZBLD^DIALOG(36327),.ZTSAVE) ; MailMan: Suggest Remove user Mailboxes
Q
NOTAUTH() ;
Q:$D(^XUSEC("XMMGR",DUZ)) 0
W !,$C(7)
D BLD^DIALOG(36300,"","","","F")
D MSG^DIALOG("WE","",IOM)
;You must hold the XMMGR key to run this option.
Q 1
HELP1 ;
D BLD^DIALOG(36311,"","","","SF")
;- the user is not in the NEW PERSON file.
;- the user has no access code and was not terminated.
;- the user has no access code and was terminated w/o mailbox retention.
;- the user has an access code, but no primary menu.
;- the user has an access code and primary menu, but no verify code AND
; - has never signed on or used mail, since being added before a cutoff date.
; OR
; - last signed on or used mail before a cutoff date.
;'Delete mailbox' includes:
;- Delete user's private mail groups
;- Remove user from membership in any group
;- Remove user as authorized sender from any group
;- Remove user from anyone's list of surrogates
;- Delete user's mailbox
;As a result, the user will not receive any mail.
Q
HELP2 ;
D BLD^DIALOG(36313,"","","","SF")
;- the user was DISUSER'd.
;- the user was terminated before a cutoff date and allowed to keep a mailbox.
;- the user has an access code, verify code, and primary menu, AND
; - has never signed on or used mail, since being added before a cutoff date.
; OR
; - last signed on or used mail before a cutoff date.
Q
CUTOFF(XMWHICH,XMGRACE,XMCUTOFF,XMABORT) ;
N DIR
W !
S XMGRACE=$$FMADD^XLFDT(DT,-30)
S DIR(0)="D^:"_XMGRACE_":EP"
S DIR("A")=$$EZBLD^DIALOG(36315) ; Logon cutoff date
S DIR("B")=$$FMTE^XLFDT(DT-10000)
S DIR("??")="^D HCUTOFF^XMUTERM(XMWHICH)"
D ^DIR I $D(DIRUT) S XMABORT=1 Q
S XMCUTOFF=Y
Q
HCUTOFF(XMWHICH) ;
D BLD^DIALOG(36316,"","","","F")
;The cutoff date must be more than 30 days ago.
;It is used during the check to see if
I XMWHICH="*"!(XMWHICH=1) D
. D BLD^DIALOG(36317,"","","","SF")
. ;- the user has an access code and primary menu, but no verify code, AND
. ; - has never signed on or used mail, since being added before a cutoff date.
. ; OR
. ; - last signed on or used mail before a cutoff date.
I XMWHICH="*"!(XMWHICH=2) D
. D BLD^DIALOG(36318,"","","","SF")
. ;- the user has an access code, verify code, and primary menu, AND
. ; - has never signed on or used mail, since being added before a cutoff date.
. ; OR
. ; - last signed on or used mail before a cutoff date.
D BLD^DIALOG(36319,"","","","F")
;(If you do not wish to check mailboxes based on a cutoff date, enter '1900'.)
;Please enter that cutoff date.
D MSG^DIALOG("WH","",IOM)
Q
CHOOSE ; Manager chooses user to remove from MailMan
N XMCUTOFF,XMABORT,XMI,XMGRACE
S XMABORT=0
Q:$$NOTAUTH()
W @IOF
D BLD^DIALOG(36310,"","","","F")
;This option lets you delete the mailbox of a user if
D HELP2
D HELP1
D MSG^DIALOG("WM","",IOM)
D CUTOFF("*",.XMGRACE,.XMCUTOFF,.XMABORT) Q:XMABORT
N DIR
S DIR(0)="SO^"_$$EZBLD^DIALOG(36330) ; M:MailMan presents;I:I select
D BLD^DIALOG(36332,"","","DIR(""?"")","F")
;Select 'M' if you want MailMan to $order through the MailBox file and
;present to you candidates for mailbox deletion.
;Select 'I' if you want to do the selection directly.
D ^DIR Q:$D(DIRUT)
I Y="M" D MMCHOOSE^XMUTERM2(XMGRACE,XMCUTOFF) Q
D ICHOOSE^XMUTERM2(XMGRACE,XMCUTOFF)
Q
XMUTERM ;ISC-SF/GMB-Delete Mailbox/Delete Message ;04/17/2002 12:08
+1 ;;8.0;MailMan;;Jun 28, 2002
+2 ; Taken from XUSTERM (SEA/AMF/WDE)
+3 ; Entry points used by MailMan options (not covered by DBIA):
+4 ; ALL1 XMMGR-TERMINATE-MANY
+5 ; ALL2 XMMGR-TERMINATE-SUGGEST
+6 ; CHOOSE XMMGR-TERMINATE-ONE
+7 ; MESSAGE XMMGR-PURGE-MESSAGE
MESSAGE ; Manager chooses messages to purge
+1 NEW DIR,XMABORT,XMZ,XMKILL,XMPARM
+2 IF $$NOTAUTH()
QUIT
+3 WRITE @IOF
+4 DO BLD^DIALOG(36301,"","","","F")
+5 DO MSG^DIALOG("WM","",IOM)
+6 ;This option enables you to purge any message.
+7 ;Purge means:
+8 ;-delete the message from all user mailboxes
+9 ;-delete the message from the MESSAGE file ^XMB(3.9
+10 ;-delete all responses from the MESSAGE file ^XMB(3.9
+11 ;-delete the message from the MESSAGES TO BE NEW AT A LATER DATE file ^XMB(3.73
+12 ;Purge is not reversible. The message is gone forever.
+13 ; kill bogus nodes
FOR
SET XMZ=$ORDER(^XMB(3.9,":"),-1)
IF XMZ?1N.N
QUIT
KILL ^XMB(3.9,XMZ)
+14 SET (XMABORT,XMKILL)=0
+15 FOR
Begin DoDot:1
+16 WRITE !
+17 ; Purge MESSAGE
SET DIR(0)="NO^1:"_$ORDER(^XMB(3.9,":"),-1)_":0^D CHKMSG^XMUTERM(Y)"
SET DIR("A")=$$EZBLD^DIALOG(36302)
+18 ; This response must be a message number
SET DIR("?")=$$EZBLD^DIALOG(36303)
+19 DO ^DIR
KILL DIR
IF $DATA(DIRUT)
SET XMABORT=1
QUIT
+20 SET XMZ=+Y
+21 ; Are you sure / NO
SET DIR(0)="Y"
SET DIR("A")=$$EZBLD^DIALOG(36304)
SET DIR("B")=$$EZBLD^DIALOG(39053)
+22 ;Message not purged.
DO ^DIR
KILL DIR
IF 'Y!$DATA(DIRUT)
WRITE !,$$EZBLD^DIALOG(36305)
QUIT
+23 SET (XMKILL("MSG"),XMKILL("RESP"))=0
+24 DO KILL^XMA32A(XMZ,.XMKILL,XMABORT)
+25 SET XMPARM(1)=XMKILL("MSG")
SET XMPARM(2)=XMKILL("RESP")
+26 ; XMKILL("MSG") message and XMKILL("RESP") response(s) purged.
WRITE !!,$$EZBLD^DIALOG(36306,.XMPARM)
+27 SET XMKILL=XMKILL+XMKILL("MSG")+XMKILL("RESP")
End DoDot:1
IF XMABORT
QUIT
+28 QUIT
CHKMSG(XMZ) ;
+1 IF '$DATA(^XMB(3.9,XMZ))
KILL X
QUIT
+2 WRITE " ",$PIECE($GET(^XMB(3.9,XMZ,0)),U,1)
+3 QUIT
ALL1 ; MailMan chooses users to remove from MailMan
+1 ; (Users who shouldn't have mailboxes.)
+2 NEW XMTEST,DIR,XMABORT,XMCUTOFF,XMGRACE
+3 IF $$NOTAUTH()
QUIT
+4 SET XMABORT=0
+5 WRITE @IOF
+6 DO BLD^DIALOG(36309,"","","","F")
+7 ;This option goes through the MailBox global and deletes the user's mailbox if
+8 DO HELP1
+9 DO BLD^DIALOG(36309.5,"","","","F")
+10 ;However, if the user meets one of the last two conditions above, but has a
+11 ;forwarding address, the user's mailbox will not be deleted. The fact will be
+12 ;noted, and the user should be investigated further.
+13 ;
+14 DO MSG^DIALOG("WM","",IOM)
+15 DO CUTOFF(1,.XMGRACE,.XMCUTOFF,.XMABORT)
IF XMABORT
QUIT
+16 ; T:Test Mode only;R:Real Mode
SET DIR(0)="SO^"_$$EZBLD^DIALOG(36321)_";"_$$EZBLD^DIALOG(36322)
+17 ; Test Mode only
SET DIR("B")=$PIECE($$EZBLD^DIALOG(36321),":",2)
+18 ; Select Run Option
SET DIR("A")=$$EZBLD^DIALOG(36323)
+19 DO BLD^DIALOG(36324,"","","DIR(""?"")","F")
+20 ;'Real Mode' will remove qualifying users from MailMan.
+21 ;'Test Mode' will not.
+22 ;Select 'Test Mode' to see who would be removed.
+23 ;Select 'Real Mode' to remove them.
+24 DO ^DIR
IF $DATA(DIRUT)
QUIT
+25 SET XMTEST=$SELECT(X="R":0,1:1)
+26 SET (ZTSAVE("XMTEST"),ZTSAVE("XMCUTOFF"),ZTSAVE("XMGRACE"))=""
+27 WRITE !
+28 DO BLD^DIALOG(36325,"","","","F")
+29 DO MSG^DIALOG("WM","",IOM)
+30 ;This report may take a while. You might consider spooling it.
+31 ; MailMan: Remove user Mailboxes
DO EN^XUTMDEVQ("ALL1TASK^XMUTERM1",$$EZBLD^DIALOG(36326),.ZTSAVE)
+32 QUIT
ALL2 ; MailMan reports on users who maybe should be removed from MailMan
+1 ; (Users who haven't logged on in a while.)
+2 NEW XMTEST,DIR,XMABORT,XMCUTOFF,XMGRACE
+3 IF $$NOTAUTH()
QUIT
+4 SET XMABORT=0
+5 WRITE @IOF
+6 DO BLD^DIALOG(36312,"","","","F")
+7 ;This option goes through the MailBox global and reports if
+8 DO HELP2
+9 DO BLD^DIALOG(36314,"","","","F")
+10 ;This option does not delete any mailboxes. Use the XM-TERMINATE-ONE-USER
+11 ;option to delete any user mailboxes identified in this report.
+12 DO MSG^DIALOG("WM","",IOM)
+13 DO CUTOFF(2,.XMGRACE,.XMCUTOFF,.XMABORT)
IF XMABORT
QUIT
+14 SET ZTSAVE("XMCUTOFF")=""
+15 WRITE !
+16 DO BLD^DIALOG(36325,"","","","F")
+17 DO MSG^DIALOG("WM","",IOM)
+18 ;This report may take a while. You might consider spooling it.
+19 ; MailMan: Suggest Remove user Mailboxes
DO EN^XUTMDEVQ("ALL2TASK^XMUTERM1",$$EZBLD^DIALOG(36327),.ZTSAVE)
+20 QUIT
NOTAUTH() ;
+1 IF $DATA(^XUSEC("XMMGR",DUZ))
QUIT 0
+2 WRITE !,$CHAR(7)
+3 DO BLD^DIALOG(36300,"","","","F")
+4 DO MSG^DIALOG("WE","",IOM)
+5 ;You must hold the XMMGR key to run this option.
+6 QUIT 1
HELP1 ;
+1 DO BLD^DIALOG(36311,"","","","SF")
+2 ;- the user is not in the NEW PERSON file.
+3 ;- the user has no access code and was not terminated.
+4 ;- the user has no access code and was terminated w/o mailbox retention.
+5 ;- the user has an access code, but no primary menu.
+6 ;- the user has an access code and primary menu, but no verify code AND
+7 ; - has never signed on or used mail, since being added before a cutoff date.
+8 ; OR
+9 ; - last signed on or used mail before a cutoff date.
+10 ;'Delete mailbox' includes:
+11 ;- Delete user's private mail groups
+12 ;- Remove user from membership in any group
+13 ;- Remove user as authorized sender from any group
+14 ;- Remove user from anyone's list of surrogates
+15 ;- Delete user's mailbox
+16 ;As a result, the user will not receive any mail.
+17 QUIT
HELP2 ;
+1 DO BLD^DIALOG(36313,"","","","SF")
+2 ;- the user was DISUSER'd.
+3 ;- the user was terminated before a cutoff date and allowed to keep a mailbox.
+4 ;- the user has an access code, verify code, and primary menu, AND
+5 ; - has never signed on or used mail, since being added before a cutoff date.
+6 ; OR
+7 ; - last signed on or used mail before a cutoff date.
+8 QUIT
CUTOFF(XMWHICH,XMGRACE,XMCUTOFF,XMABORT) ;
+1 NEW DIR
+2 WRITE !
+3 SET XMGRACE=$$FMADD^XLFDT(DT,-30)
+4 SET DIR(0)="D^:"_XMGRACE_":EP"
+5 ; Logon cutoff date
SET DIR("A")=$$EZBLD^DIALOG(36315)
+6 SET DIR("B")=$$FMTE^XLFDT(DT-10000)
+7 SET DIR("??")="^D HCUTOFF^XMUTERM(XMWHICH)"
+8 DO ^DIR
IF $DATA(DIRUT)
SET XMABORT=1
QUIT
+9 SET XMCUTOFF=Y
+10 QUIT
HCUTOFF(XMWHICH) ;
+1 DO BLD^DIALOG(36316,"","","","F")
+2 ;The cutoff date must be more than 30 days ago.
+3 ;It is used during the check to see if
+4 IF XMWHICH="*"!(XMWHICH=1)
Begin DoDot:1
+5 DO BLD^DIALOG(36317,"","","","SF")
+6 ;- the user has an access code and primary menu, but no verify code, AND
+7 ; - has never signed on or used mail, since being added before a cutoff date.
+8 ; OR
+9 ; - last signed on or used mail before a cutoff date.
End DoDot:1
+10 IF XMWHICH="*"!(XMWHICH=2)
Begin DoDot:1
+11 DO BLD^DIALOG(36318,"","","","SF")
+12 ;- the user has an access code, verify code, and primary menu, AND
+13 ; - has never signed on or used mail, since being added before a cutoff date.
+14 ; OR
+15 ; - last signed on or used mail before a cutoff date.
End DoDot:1
+16 DO BLD^DIALOG(36319,"","","","F")
+17 ;(If you do not wish to check mailboxes based on a cutoff date, enter '1900'.)
+18 ;Please enter that cutoff date.
+19 DO MSG^DIALOG("WH","",IOM)
+20 QUIT
CHOOSE ; Manager chooses user to remove from MailMan
+1 NEW XMCUTOFF,XMABORT,XMI,XMGRACE
+2 SET XMABORT=0
+3 IF $$NOTAUTH()
QUIT
+4 WRITE @IOF
+5 DO BLD^DIALOG(36310,"","","","F")
+6 ;This option lets you delete the mailbox of a user if
+7 DO HELP2
+8 DO HELP1
+9 DO MSG^DIALOG("WM","",IOM)
+10 DO CUTOFF("*",.XMGRACE,.XMCUTOFF,.XMABORT)
IF XMABORT
QUIT
+11 NEW DIR
+12 ; M:MailMan presents;I:I select
SET DIR(0)="SO^"_$$EZBLD^DIALOG(36330)
+13 DO BLD^DIALOG(36332,"","","DIR(""?"")","F")
+14 ;Select 'M' if you want MailMan to $order through the MailBox file and
+15 ;present to you candidates for mailbox deletion.
+16 ;Select 'I' if you want to do the selection directly.
+17 DO ^DIR
IF $DATA(DIRUT)
QUIT
+18 IF Y="M"
DO MMCHOOSE^XMUTERM2(XMGRACE,XMCUTOFF)
QUIT
+19 DO ICHOOSE^XMUTERM2(XMGRACE,XMCUTOFF)
+20 QUIT