Mercurial > p > roundup > code
annotate detectors/emailauditor.py @ 3896:fca0365521fc
ignore client shutdown exceptions when sending responses
patch from Ulrik Miaelsson
If the user clicks the stop button, or click another link before
the previous has finished loading, or something similar an IOError
exception will be raised which results in the admin being sent an
email.
This can understandably be pretty annoying if your users are
doing that on a regular basis. So we'll trap that exception
and ignore it.
| author | Justus Pendleton <jpend@users.sourceforge.net> |
|---|---|
| date | Tue, 11 Sep 2007 21:30:14 +0000 |
| parents | 81cb4860ca75 |
| children |
| rev | line source |
|---|---|
|
2127
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
1 |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2 def eml_to_mht(db, cl, nodeid, newvalues): |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3 '''This auditor fires whenever a new file entity is created. |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
4 |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
5 If the file is of type message/rfc822, we tack onthe extension .eml. |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
6 |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
7 The reason for this is that Microsoft Internet Explorer will not open |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
8 things with a .eml attachment, as they deem it 'unsafe'. Worse yet, |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
9 they'll just give you an incomprehensible error message. For more |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
10 information, please see: |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
11 |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
12 http://support.microsoft.com/default.aspx?scid=kb;EN-US;825803 |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
13 |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
14 Their suggested work around is (excerpt): |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
15 |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
16 WORKAROUND |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
17 |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
18 To work around this behavior, rename the .EML file that the URL |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
19 links to so that it has a .MHT file name extension, and then update |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
20 the URL to reflect the change to the file name. To do this: |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
21 |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
22 1. In Windows Explorer, locate and then select the .EML file that |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
23 the URL links. |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
24 2. Right-click the .EML file, and then click Rename. |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
25 3. Change the file name so that the .EML file uses a .MHT file name |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
26 extension, and then press ENTER. |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
27 4. Updated the URL that links to the file to reflect the new file |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
28 name extension. |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
29 |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
30 So... we do that. :)''' |
|
3345
81cb4860ca75
fix nameerror. backport candidate
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
2128
diff
changeset
|
31 if newvalues.get('type', '').lower() == "message/rfc822": |
| 2128 | 32 if not newvalues.has_key('name'): |
|
2127
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
33 newvalues['name'] = 'email.mht' |
| 2128 | 34 return |
|
2127
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
35 name = newvalues['name'] |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
36 if name.endswith('.eml'): |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
37 name = name[:-4] |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
38 newvalues['name'] = name + '.mht' |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
39 |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
40 def init(db): |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
41 db.file.audit('create', eml_to_mht) |
|
cee6efcbb57e
bah, file renaming
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
42 |
