| 1 | XMUTERM ;ISC-SF/GMB-Delete Mailbox/Delete Message ;04/17/2002  12:08
 | 
|---|
| 2 |  ;;8.0;MailMan;;Jun 28, 2002
 | 
|---|
| 3 |  ; Taken from XUSTERM (SEA/AMF/WDE)
 | 
|---|
| 4 |  ; Entry points used by MailMan options (not covered by DBIA):
 | 
|---|
| 5 |  ; ALL1     XMMGR-TERMINATE-MANY
 | 
|---|
| 6 |  ; ALL2     XMMGR-TERMINATE-SUGGEST
 | 
|---|
| 7 |  ; CHOOSE   XMMGR-TERMINATE-ONE
 | 
|---|
| 8 |  ; MESSAGE  XMMGR-PURGE-MESSAGE
 | 
|---|
| 9 | MESSAGE ; Manager chooses messages to purge
 | 
|---|
| 10 |  N DIR,XMABORT,XMZ,XMKILL,XMPARM
 | 
|---|
| 11 |  Q:$$NOTAUTH()
 | 
|---|
| 12 |  W @IOF
 | 
|---|
| 13 |  D BLD^DIALOG(36301,"","","","F")
 | 
|---|
| 14 |  D MSG^DIALOG("WM","",IOM)
 | 
|---|
| 15 |  ;This option enables you to purge any message.
 | 
|---|
| 16 |  ;Purge means:
 | 
|---|
| 17 |  ;-delete the message from all user mailboxes
 | 
|---|
| 18 |  ;-delete the message from the MESSAGE file ^XMB(3.9
 | 
|---|
| 19 |  ;-delete all responses from the MESSAGE file ^XMB(3.9
 | 
|---|
| 20 |  ;-delete the message from the MESSAGES TO BE NEW AT A LATER DATE file ^XMB(3.73
 | 
|---|
| 21 |  ;Purge is not reversible.  The message is gone forever.
 | 
|---|
| 22 |  F  S XMZ=$O(^XMB(3.9,":"),-1) Q:XMZ?1N.N  K ^XMB(3.9,XMZ) ; kill bogus nodes
 | 
|---|
| 23 |  S (XMABORT,XMKILL)=0
 | 
|---|
| 24 |  F  D  Q:XMABORT
 | 
|---|
| 25 |  . W !
 | 
|---|
| 26 |  . S DIR(0)="NO^1:"_$O(^XMB(3.9,":"),-1)_":0^D CHKMSG^XMUTERM(Y)",DIR("A")=$$EZBLD^DIALOG(36302) ; Purge MESSAGE
 | 
|---|
| 27 |  . S DIR("?")=$$EZBLD^DIALOG(36303) ; This response must be a message number
 | 
|---|
| 28 |  . D ^DIR K DIR I $D(DIRUT) S XMABORT=1 Q
 | 
|---|
| 29 |  . S XMZ=+Y
 | 
|---|
| 30 |  . S DIR(0)="Y",DIR("A")=$$EZBLD^DIALOG(36304),DIR("B")=$$EZBLD^DIALOG(39053) ; Are you sure / NO
 | 
|---|
| 31 |  . D ^DIR K DIR I 'Y!$D(DIRUT) W !,$$EZBLD^DIALOG(36305) Q  ;Message not purged.
 | 
|---|
| 32 |  . S (XMKILL("MSG"),XMKILL("RESP"))=0
 | 
|---|
| 33 |  . D KILL^XMA32A(XMZ,.XMKILL,XMABORT)
 | 
|---|
| 34 |  . S XMPARM(1)=XMKILL("MSG"),XMPARM(2)=XMKILL("RESP")
 | 
|---|
| 35 |  . W !!,$$EZBLD^DIALOG(36306,.XMPARM) ; XMKILL("MSG") message and XMKILL("RESP") response(s) purged.
 | 
|---|
| 36 |  . S XMKILL=XMKILL+XMKILL("MSG")+XMKILL("RESP")
 | 
|---|
| 37 |  Q
 | 
|---|
| 38 | CHKMSG(XMZ) ;
 | 
|---|
| 39 |  I '$D(^XMB(3.9,XMZ)) K X Q
 | 
|---|
| 40 |  W "  ",$P($G(^XMB(3.9,XMZ,0)),U,1)
 | 
|---|
| 41 |  Q
 | 
|---|
| 42 | ALL1 ; MailMan chooses users to remove from MailMan
 | 
|---|
| 43 |  ; (Users who shouldn't have mailboxes.)
 | 
|---|
| 44 |  N XMTEST,DIR,XMABORT,XMCUTOFF,XMGRACE
 | 
|---|
| 45 |  Q:$$NOTAUTH()
 | 
|---|
| 46 |  S XMABORT=0
 | 
|---|
| 47 |  W @IOF
 | 
|---|
| 48 |  D BLD^DIALOG(36309,"","","","F")
 | 
|---|
| 49 |  ;This option goes through the MailBox global and deletes the user's mailbox if
 | 
|---|
| 50 |  D HELP1
 | 
|---|
| 51 |  D BLD^DIALOG(36309.5,"","","","F")
 | 
|---|
| 52 |  ;However, if the user meets one of the last two conditions above, but has a
 | 
|---|
| 53 |  ;forwarding address, the user's mailbox will not be deleted.  The fact will be
 | 
|---|
| 54 |  ;noted, and the user should be investigated further.  
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 |  D MSG^DIALOG("WM","",IOM)
 | 
|---|
| 57 |  D CUTOFF(1,.XMGRACE,.XMCUTOFF,.XMABORT) Q:XMABORT
 | 
|---|
| 58 |  S DIR(0)="SO^"_$$EZBLD^DIALOG(36321)_";"_$$EZBLD^DIALOG(36322) ; T:Test Mode only;R:Real Mode
 | 
|---|
| 59 |  S DIR("B")=$P($$EZBLD^DIALOG(36321),":",2) ; Test Mode only
 | 
|---|
| 60 |  S DIR("A")=$$EZBLD^DIALOG(36323) ; Select Run Option
 | 
|---|
| 61 |  D BLD^DIALOG(36324,"","","DIR(""?"")","F")
 | 
|---|
| 62 |  ;'Real Mode' will remove qualifying users from MailMan.
 | 
|---|
| 63 |  ;'Test Mode' will not.
 | 
|---|
| 64 |  ;Select 'Test Mode' to see who would be removed.
 | 
|---|
| 65 |  ;Select 'Real Mode' to remove them.
 | 
|---|
| 66 |  D ^DIR Q:$D(DIRUT)
 | 
|---|
| 67 |  S XMTEST=$S(X="R":0,1:1)
 | 
|---|
| 68 |  S (ZTSAVE("XMTEST"),ZTSAVE("XMCUTOFF"),ZTSAVE("XMGRACE"))=""
 | 
|---|
| 69 |  W !
 | 
|---|
| 70 |  D BLD^DIALOG(36325,"","","","F")
 | 
|---|
| 71 |  D MSG^DIALOG("WM","",IOM)
 | 
|---|
| 72 |  ;This report may take a while.  You might consider spooling it.
 | 
|---|
| 73 |  D EN^XUTMDEVQ("ALL1TASK^XMUTERM1",$$EZBLD^DIALOG(36326),.ZTSAVE) ; MailMan: Remove user Mailboxes
 | 
|---|
| 74 |  Q
 | 
|---|
| 75 | ALL2 ; MailMan reports on users who maybe should be removed from MailMan
 | 
|---|
| 76 |  ; (Users who haven't logged on in a while.)
 | 
|---|
| 77 |  N XMTEST,DIR,XMABORT,XMCUTOFF,XMGRACE
 | 
|---|
| 78 |  Q:$$NOTAUTH()
 | 
|---|
| 79 |  S XMABORT=0
 | 
|---|
| 80 |  W @IOF
 | 
|---|
| 81 |  D BLD^DIALOG(36312,"","","","F")
 | 
|---|
| 82 |  ;This option goes through the MailBox global and reports if
 | 
|---|
| 83 |  D HELP2
 | 
|---|
| 84 |  D BLD^DIALOG(36314,"","","","F")
 | 
|---|
| 85 |  ;This option does not delete any mailboxes.  Use the XM-TERMINATE-ONE-USER
 | 
|---|
| 86 |  ;option to delete any user mailboxes identified in this report.
 | 
|---|
| 87 |  D MSG^DIALOG("WM","",IOM)
 | 
|---|
| 88 |  D CUTOFF(2,.XMGRACE,.XMCUTOFF,.XMABORT) Q:XMABORT
 | 
|---|
| 89 |  S ZTSAVE("XMCUTOFF")=""
 | 
|---|
| 90 |  W !
 | 
|---|
| 91 |  D BLD^DIALOG(36325,"","","","F")
 | 
|---|
| 92 |  D MSG^DIALOG("WM","",IOM)
 | 
|---|
| 93 |  ;This report may take a while.  You might consider spooling it.
 | 
|---|
| 94 |  D EN^XUTMDEVQ("ALL2TASK^XMUTERM1",$$EZBLD^DIALOG(36327),.ZTSAVE) ; MailMan: Suggest Remove user Mailboxes
 | 
|---|
| 95 |  Q
 | 
|---|
| 96 | NOTAUTH() ;
 | 
|---|
| 97 |  Q:$D(^XUSEC("XMMGR",DUZ)) 0
 | 
|---|
| 98 |  W !,$C(7)
 | 
|---|
| 99 |  D BLD^DIALOG(36300,"","","","F")
 | 
|---|
| 100 |  D MSG^DIALOG("WE","",IOM)
 | 
|---|
| 101 |  ;You must hold the XMMGR key to run this option.
 | 
|---|
| 102 |  Q 1
 | 
|---|
| 103 | HELP1 ;
 | 
|---|
| 104 |  D BLD^DIALOG(36311,"","","","SF")
 | 
|---|
| 105 |  ;- the user is not in the NEW PERSON file.
 | 
|---|
| 106 |  ;- the user has no access code and was not terminated.
 | 
|---|
| 107 |  ;- the user has no access code and was terminated w/o mailbox retention.
 | 
|---|
| 108 |  ;- the user has an access code, but no primary menu.
 | 
|---|
| 109 |  ;- the user has an access code and primary menu, but no verify code AND
 | 
|---|
| 110 |  ;  - has never signed on or used mail, since being added before a cutoff date.
 | 
|---|
| 111 |  ;  OR
 | 
|---|
| 112 |  ;  - last signed on or used mail before a cutoff date.
 | 
|---|
| 113 |  ;'Delete mailbox' includes:
 | 
|---|
| 114 |  ;- Delete user's private mail groups
 | 
|---|
| 115 |  ;- Remove user from membership in any group
 | 
|---|
| 116 |  ;- Remove user as authorized sender from any group
 | 
|---|
| 117 |  ;- Remove user from anyone's list of surrogates
 | 
|---|
| 118 |  ;- Delete user's mailbox
 | 
|---|
| 119 |  ;As a result, the user will not receive any mail.
 | 
|---|
| 120 |  Q
 | 
|---|
| 121 | HELP2 ;
 | 
|---|
| 122 |  D BLD^DIALOG(36313,"","","","SF")
 | 
|---|
| 123 |  ;- the user was DISUSER'd.
 | 
|---|
| 124 |  ;- the user was terminated before a cutoff date and allowed to keep a mailbox.
 | 
|---|
| 125 |  ;- the user has an access code, verify code, and primary menu, AND
 | 
|---|
| 126 |  ;  - has never signed on or used mail, since being added before a cutoff date.
 | 
|---|
| 127 |  ;  OR
 | 
|---|
| 128 |  ;  - last signed on or used mail before a cutoff date.
 | 
|---|
| 129 |  Q
 | 
|---|
| 130 | CUTOFF(XMWHICH,XMGRACE,XMCUTOFF,XMABORT) ;
 | 
|---|
| 131 |  N DIR
 | 
|---|
| 132 |  W !
 | 
|---|
| 133 |  S XMGRACE=$$FMADD^XLFDT(DT,-30)
 | 
|---|
| 134 |  S DIR(0)="D^:"_XMGRACE_":EP"
 | 
|---|
| 135 |  S DIR("A")=$$EZBLD^DIALOG(36315) ; Logon cutoff date
 | 
|---|
| 136 |  S DIR("B")=$$FMTE^XLFDT(DT-10000)
 | 
|---|
| 137 |  S DIR("??")="^D HCUTOFF^XMUTERM(XMWHICH)"
 | 
|---|
| 138 |  D ^DIR I $D(DIRUT) S XMABORT=1 Q
 | 
|---|
| 139 |  S XMCUTOFF=Y
 | 
|---|
| 140 |  Q
 | 
|---|
| 141 | HCUTOFF(XMWHICH) ;
 | 
|---|
| 142 |  D BLD^DIALOG(36316,"","","","F")
 | 
|---|
| 143 |  ;The cutoff date must be more than 30 days ago.
 | 
|---|
| 144 |  ;It is used during the check to see if
 | 
|---|
| 145 |  I XMWHICH="*"!(XMWHICH=1) D
 | 
|---|
| 146 |  . D BLD^DIALOG(36317,"","","","SF")
 | 
|---|
| 147 |  . ;- the user has an access code and primary menu, but no verify code, AND
 | 
|---|
| 148 |  . ;  - has never signed on or used mail, since being added before a cutoff date.
 | 
|---|
| 149 |  . ;  OR
 | 
|---|
| 150 |  . ;  - last signed on or used mail before a cutoff date.
 | 
|---|
| 151 |  I XMWHICH="*"!(XMWHICH=2) D
 | 
|---|
| 152 |  . D BLD^DIALOG(36318,"","","","SF")
 | 
|---|
| 153 |  . ;- the user has an access code, verify code, and primary menu, AND
 | 
|---|
| 154 |  . ;  - has never signed on or used mail, since being added before a cutoff date.
 | 
|---|
| 155 |  . ;  OR
 | 
|---|
| 156 |  . ;  - last signed on or used mail before a cutoff date.
 | 
|---|
| 157 |  D BLD^DIALOG(36319,"","","","F")
 | 
|---|
| 158 |  ;(If you do not wish to check mailboxes based on a cutoff date, enter '1900'.)
 | 
|---|
| 159 |  ;Please enter that cutoff date.
 | 
|---|
| 160 |  D MSG^DIALOG("WH","",IOM)
 | 
|---|
| 161 |  Q
 | 
|---|
| 162 | CHOOSE ; Manager chooses user to remove from MailMan
 | 
|---|
| 163 |  N XMCUTOFF,XMABORT,XMI,XMGRACE
 | 
|---|
| 164 |  S XMABORT=0
 | 
|---|
| 165 |  Q:$$NOTAUTH()
 | 
|---|
| 166 |  W @IOF
 | 
|---|
| 167 |  D BLD^DIALOG(36310,"","","","F")
 | 
|---|
| 168 |  ;This option lets you delete the mailbox of a user if
 | 
|---|
| 169 |  D HELP2
 | 
|---|
| 170 |  D HELP1
 | 
|---|
| 171 |  D MSG^DIALOG("WM","",IOM)
 | 
|---|
| 172 |  D CUTOFF("*",.XMGRACE,.XMCUTOFF,.XMABORT) Q:XMABORT
 | 
|---|
| 173 |  N DIR
 | 
|---|
| 174 |  S DIR(0)="SO^"_$$EZBLD^DIALOG(36330) ; M:MailMan presents;I:I select
 | 
|---|
| 175 |  D BLD^DIALOG(36332,"","","DIR(""?"")","F")
 | 
|---|
| 176 |  ;Select 'M' if you want MailMan to $order through the MailBox file and
 | 
|---|
| 177 |  ;present to you candidates for mailbox deletion.
 | 
|---|
| 178 |  ;Select 'I' if you want to do the selection directly.
 | 
|---|
| 179 |  D ^DIR Q:$D(DIRUT)
 | 
|---|
| 180 |  I Y="M" D MMCHOOSE^XMUTERM2(XMGRACE,XMCUTOFF) Q
 | 
|---|
| 181 |  D ICHOOSE^XMUTERM2(XMGRACE,XMCUTOFF)
 | 
|---|
| 182 |  Q
 | 
|---|