Mercurial > p > roundup > code
annotate roundup/mailgw.py @ 905:502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
The two templates have been migrated to that setup. Lots of unit
tests. Still some issue in the web form for editing Roles assigned to
users.
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Fri, 26 Jul 2002 08:27:00 +0000 |
| parents | b0d3d3535998 |
| children | 23c9d4f86380 |
| rev | line source |
|---|---|
|
213
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
1 # |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
2 # Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
3 # This module is free software, and you may redistribute it and/or modify |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
4 # under the same terms as Python, so long as this copyright message and |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
5 # disclaimer are retained in their original form. |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
6 # |
| 214 | 7 # IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR |
|
213
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
8 # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
9 # OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
10 # POSSIBILITY OF SUCH DAMAGE. |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
11 # |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
12 # BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
|
406
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
391
diff
changeset
|
17 # |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
391
diff
changeset
|
18 |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
391
diff
changeset
|
19 __doc__ = ''' |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
20 An e-mail gateway for Roundup. |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
21 |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
22 Incoming messages are examined for multiple parts: |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
23 . In a multipart/mixed message or part, each subpart is extracted and |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
24 examined. The text/plain subparts are assembled to form the textual |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
25 body of the message, to be stored in the file associated with a "msg" |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
26 class node. Any parts of other types are each stored in separate files |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
27 and given "file" class nodes that are linked to the "msg" node. |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
28 . In a multipart/alternative message or part, we look for a text/plain |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
29 subpart and ignore the other parts. |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
30 |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
31 Summary |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
32 ------- |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
33 The "summary" property on message nodes is taken from the first non-quoting |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
34 section in the message body. The message body is divided into sections by |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
35 blank lines. Sections where the second and all subsequent lines begin with |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
36 a ">" or "|" character are considered "quoting sections". The first line of |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
37 the first non-quoting section becomes the summary of the message. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
38 |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
39 Addresses |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
40 --------- |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
41 All of the addresses in the To: and Cc: headers of the incoming message are |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
42 looked up among the user nodes, and the corresponding users are placed in |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
43 the "recipients" property on the new "msg" node. The address in the From: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
44 header similarly determines the "author" property of the new "msg" |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
45 node. The default handling for addresses that don't have corresponding |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
46 users is to create new users with no passwords and a username equal to the |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
47 address. (The web interface does not permit logins for users with no |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
48 passwords.) If we prefer to reject mail from outside sources, we can simply |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
49 register an auditor on the "user" class that prevents the creation of user |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
50 nodes with no passwords. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
51 |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
52 Actions |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
53 ------- |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
54 The subject line of the incoming message is examined to determine whether |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
55 the message is an attempt to create a new item or to discuss an existing |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
56 item. A designator enclosed in square brackets is sought as the first thing |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
57 on the subject line (after skipping any "Fwd:" or "Re:" prefixes). |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
58 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
59 If an item designator (class name and id number) is found there, the newly |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
60 created "msg" node is added to the "messages" property for that item, and |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
61 any new "file" nodes are added to the "files" property for the item. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
62 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
63 If just an item class name is found there, we attempt to create a new item |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
64 of that class with its "messages" property initialized to contain the new |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
65 "msg" node and its "files" property initialized to contain any new "file" |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
66 nodes. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
67 |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
68 Triggers |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
69 -------- |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
70 Both cases may trigger detectors (in the first case we are calling the |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
71 set() method to add the message to the item's spool; in the second case we |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
72 are calling the create() method to create a new node). If an auditor raises |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
73 an exception, the original message is bounced back to the sender with the |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
74 explanatory message given in the exception. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
75 |
|
905
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
76 $Id: mailgw.py,v 1.79 2002-07-26 08:26:59 richard Exp $ |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
77 ''' |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
78 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
79 |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
80 import string, re, os, mimetools, cStringIO, smtplib, socket, binascii, quopri |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
81 import time, random |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
82 import traceback, MimeWriter |
|
270
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
83 import hyperdb, date, password |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
84 |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
85 SENDMAILDEBUG = os.environ.get('SENDMAILDEBUG', '') |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
86 |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
87 class MailGWError(ValueError): |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
88 pass |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
89 |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
90 class MailUsageError(ValueError): |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
91 pass |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
92 |
|
544
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
93 class MailUsageHelp(Exception): |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
94 pass |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
95 |
|
905
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
96 class Unauthorized(Exception): |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
97 """ Access denied """ |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
98 |
|
902
b0d3d3535998
Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents:
880
diff
changeset
|
99 def initialiseSecurity(security): |
|
b0d3d3535998
Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents:
880
diff
changeset
|
100 ''' Create some Permissions and Roles on the security object |
|
b0d3d3535998
Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents:
880
diff
changeset
|
101 |
|
b0d3d3535998
Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents:
880
diff
changeset
|
102 This function is directly invoked by security.Security.__init__() |
|
b0d3d3535998
Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents:
880
diff
changeset
|
103 as a part of the Security object instantiation. |
|
b0d3d3535998
Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents:
880
diff
changeset
|
104 ''' |
|
b0d3d3535998
Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents:
880
diff
changeset
|
105 newid = security.addPermission(name="Email Registration", |
|
b0d3d3535998
Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents:
880
diff
changeset
|
106 description="Anonymous may register through e-mail") |
|
b0d3d3535998
Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents:
880
diff
changeset
|
107 |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
108 class Message(mimetools.Message): |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
109 ''' subclass mimetools.Message so we can retrieve the parts of the |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
110 message... |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
111 ''' |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
112 def getPart(self): |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
113 ''' Get a single part of a multipart message and return it as a new |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
114 Message instance. |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
115 ''' |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
116 boundary = self.getparam('boundary') |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
117 mid, end = '--'+boundary, '--'+boundary+'--' |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
118 s = cStringIO.StringIO() |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
119 while 1: |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
120 line = self.fp.readline() |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
121 if not line: |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
122 break |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
123 if line.strip() in (mid, end): |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
124 break |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
125 s.write(line) |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
126 if not s.getvalue().strip(): |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
127 return None |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
128 s.seek(0) |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
129 return Message(s) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
130 |
|
573
f0513f650042
handle stripping of "AW:" from subject line
Richard Jones <richard@users.sourceforge.net>
parents:
571
diff
changeset
|
131 subject_re = re.compile(r'(?P<refwd>\s*\W?\s*(fwd|re|aw)\s*\W?\s*)*' |
|
616
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
132 r'\s*(\[(?P<classname>[^\d\s]+)(?P<nodeid>\d+)?\])?' |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
133 r'\s*(?P<title>[^[]+)?(\[(?P<args>.+?)\])?', re.I) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
134 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
135 class MailGW: |
|
389
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
136 def __init__(self, instance, db): |
|
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
137 self.instance = instance |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
138 self.db = db |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
139 |
|
824
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
140 # should we trap exceptions (normal usage) or pass them through |
|
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
141 # (for testing) |
|
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
142 self.trapExceptions = 1 |
|
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
143 |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
144 def main(self, fp): |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
145 ''' fp - the file from which to read the Message. |
|
343
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
146 ''' |
|
699
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
147 return self.handle_Message(Message(fp)) |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
148 |
|
343
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
149 def handle_Message(self, message): |
|
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
150 '''Handle an RFC822 Message |
|
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
151 |
|
391
399340646765
handle the case where there is no file attached
Richard Jones <richard@users.sourceforge.net>
parents:
389
diff
changeset
|
152 Handle the Message object by calling handle_message() and then cope |
|
343
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
153 with any errors raised by handle_message. |
|
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
154 This method's job is to make that call and handle any |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
155 errors in a sane manner. It should be replaced if you wish to |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
156 handle errors in a different manner. |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
157 ''' |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
158 # in some rare cases, a particularly stuffed-up e-mail will make |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
159 # its way into here... try to handle it gracefully |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
160 sendto = message.getaddrlist('from') |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
161 if sendto: |
|
824
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
162 if not self.trapExceptions: |
|
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
163 return self.handle_message(message) |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
164 try: |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
165 return self.handle_message(message) |
|
544
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
166 except MailUsageHelp: |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
167 # bounce the message back to the sender with the usage message |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
168 fulldoc = '\n'.join(string.split(__doc__, '\n')[2:]) |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
169 sendto = [sendto[0][1]] |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
170 m = [''] |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
171 m.append('\n\nMail Gateway Help\n=================') |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
172 m.append(fulldoc) |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
173 m = self.bounce_message(message, sendto, m, |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
174 subject="Mail Gateway Help") |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
175 except MailUsageError, value: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
176 # bounce the message back to the sender with the usage message |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
177 fulldoc = '\n'.join(string.split(__doc__, '\n')[2:]) |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
178 sendto = [sendto[0][1]] |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
179 m = [''] |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
180 m.append(str(value)) |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
181 m.append('\n\nMail Gateway Help\n=================') |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
182 m.append(fulldoc) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
183 m = self.bounce_message(message, sendto, m) |
|
905
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
184 except Unauthorized, value: |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
185 # just inform the user that he is not authorized |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
186 sendto = [sendto[0][1]] |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
187 m = [''] |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
188 m.append(str(value)) |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
189 m = self.bounce_message(message, sendto, m) |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
190 except: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
191 # bounce the message back to the sender with the error message |
|
588
16d13b9b8321
mailgw failures (unexpected ones) are forwarded to the roundup admin
Richard Jones <richard@users.sourceforge.net>
parents:
573
diff
changeset
|
192 sendto = [sendto[0][1], self.instance.ADMIN_EMAIL] |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
193 m = [''] |
| 590 | 194 m.append('An unexpected error occurred during the processing') |
| 195 m.append('of your message. The tracker administrator is being') | |
| 196 m.append('notified.\n') | |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
197 m.append('---- traceback of failure ----') |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
198 s = cStringIO.StringIO() |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
199 import traceback |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
200 traceback.print_exc(None, s) |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
201 m.append(s.getvalue()) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
202 m = self.bounce_message(message, sendto, m) |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
203 else: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
204 # very bad-looking message - we don't even know who sent it |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
205 sendto = [self.instance.ADMIN_EMAIL] |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
206 m = ['Subject: badly formed message from mail gateway'] |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
207 m.append('') |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
208 m.append('The mail gateway retrieved a message which has no From:') |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
209 m.append('line, indicating that it is corrupt. Please check your') |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
210 m.append('mail gateway source. Failed message is attached.') |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
211 m.append('') |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
212 m = self.bounce_message(message, sendto, m, |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
213 subject='Badly formed message from mail gateway') |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
214 |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
215 # now send the message |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
216 if SENDMAILDEBUG: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
217 open(SENDMAILDEBUG, 'w').write('From: %s\nTo: %s\n%s\n'%( |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
218 self.instance.ADMIN_EMAIL, ', '.join(sendto), m.getvalue())) |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
219 else: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
220 try: |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
221 smtp = smtplib.SMTP(self.instance.MAILHOST) |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
222 smtp.sendmail(self.instance.ADMIN_EMAIL, sendto, m.getvalue()) |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
223 except socket.error, value: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
224 raise MailGWError, "Couldn't send error email: "\ |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
225 "mailhost %s"%value |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
226 except smtplib.SMTPException, value: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
227 raise MailGWError, "Couldn't send error email: %s"%value |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
228 |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
229 def bounce_message(self, message, sendto, error, |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
230 subject='Failed issue tracker submission'): |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
231 ''' create a message that explains the reason for the failed |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
232 issue submission to the author and attach the original |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
233 message. |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
234 ''' |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
235 msg = cStringIO.StringIO() |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
236 writer = MimeWriter.MimeWriter(msg) |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
237 writer.addheader('Subject', subject) |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
238 writer.addheader('From', '%s <%s>'% (self.instance.INSTANCE_NAME, |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
239 self.instance.ISSUE_TRACKER_EMAIL)) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
240 writer.addheader('To', ','.join(sendto)) |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
241 writer.addheader('MIME-Version', '1.0') |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
242 part = writer.startmultipartbody('mixed') |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
243 part = writer.nextpart() |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
244 body = part.startbody('text/plain') |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
245 body.write('\n'.join(error)) |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
246 |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
247 # reconstruct the original message |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
248 m = cStringIO.StringIO() |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
249 w = MimeWriter.MimeWriter(m) |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
250 # default the content_type, just in case... |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
251 content_type = 'text/plain' |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
252 # add the headers except the content-type |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
253 for header in message.headers: |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
254 header_name = header.split(':')[0] |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
255 if header_name.lower() == 'content-type': |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
256 content_type = message.getheader(header_name) |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
257 elif message.getheader(header_name): |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
258 w.addheader(header_name, message.getheader(header_name)) |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
259 # now attach the message body |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
260 body = w.startbody(content_type) |
|
521
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
261 try: |
|
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
262 message.rewindbody() |
|
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
263 except IOError: |
|
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
264 body.write("*** couldn't include message body: read from pipe ***") |
|
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
265 else: |
|
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
266 body.write(message.fp.read()) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
267 |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
268 # attach the original message to the returned message |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
269 part = writer.nextpart() |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
270 part.addheader('Content-Disposition','attachment') |
|
544
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
271 part.addheader('Content-Description','Message you sent') |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
272 part.addheader('Content-Transfer-Encoding', '7bit') |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
273 body = part.startbody('message/rfc822') |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
274 body.write(m.getvalue()) |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
275 |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
276 writer.lastpart() |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
277 return msg |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
278 |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
279 def get_part_data_decoded(self,part): |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
280 encoding = part.getencoding() |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
281 data = None |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
282 if encoding == 'base64': |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
283 # BUG: is base64 really used for text encoding or |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
284 # are we inserting zip files here. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
285 data = binascii.a2b_base64(part.fp.read()) |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
286 elif encoding == 'quoted-printable': |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
287 # the quopri module wants to work with files |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
288 decoded = cStringIO.StringIO() |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
289 quopri.decode(part.fp, decoded) |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
290 data = decoded.getvalue() |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
291 elif encoding == 'uuencoded': |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
292 data = binascii.a2b_uu(part.fp.read()) |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
293 else: |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
294 # take it as text |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
295 data = part.fp.read() |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
296 return data |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
297 |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
298 def handle_message(self, message): |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
299 ''' message - a Message instance |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
300 |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
301 Parse the message as per the module docstring. |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
302 ''' |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
303 # handle the subject line |
|
226
8af4945246cb
Make the mail parser a little more robust.
Richard Jones <richard@users.sourceforge.net>
parents:
224
diff
changeset
|
304 subject = message.getheader('subject', '') |
|
544
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
305 |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
306 if subject.strip() == 'help': |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
307 raise MailUsageHelp |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
308 |
| 218 | 309 m = subject_re.match(subject) |
|
616
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
310 |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
311 # check for well-formed subject line |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
312 if m: |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
313 # get the classname |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
314 classname = m.group('classname') |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
315 if classname is None: |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
316 # no classname, fallback on the default |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
317 if hasattr(self.instance, 'MAIL_DEFAULT_CLASS') and \ |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
318 self.instance.MAIL_DEFAULT_CLASS: |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
319 classname = self.instance.MAIL_DEFAULT_CLASS |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
320 else: |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
321 # fail |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
322 m = None |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
323 |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
324 if not m: |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
325 raise MailUsageError, ''' |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
326 The message you sent to roundup did not contain a properly formed subject |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
327 line. The subject must contain a class name or designator to indicate the |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
328 "topic" of the message. For example: |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
329 Subject: [issue] This is a new issue |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
330 - this will create a new issue in the tracker with the title "This is |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
331 a new issue". |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
332 Subject: [issue1234] This is a followup to issue 1234 |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
333 - this will append the message's contents to the existing issue 1234 |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
334 in the tracker. |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
335 |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
336 Subject was: "%s" |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
337 '''%subject |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
338 |
|
616
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
339 # get the class |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
340 try: |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
341 cl = self.db.getclass(classname) |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
342 except KeyError: |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
343 raise MailUsageError, ''' |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
344 The class name you identified in the subject line ("%s") does not exist in the |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
345 database. |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
346 |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
347 Valid class names are: %s |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
348 Subject was: "%s" |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
349 '''%(classname, ', '.join(self.db.getclasses()), subject) |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
350 |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
351 # get the optional nodeid |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
352 nodeid = m.group('nodeid') |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
353 |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
354 # title is optional too |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
355 title = m.group('title') |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
356 if title: |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
357 title = title.strip() |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
358 else: |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
359 title = '' |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
360 |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
361 # but we do need either a title or a nodeid... |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
362 if nodeid is None and not title: |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
363 raise MailUsageError, ''' |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
364 I cannot match your message to a node in the database - you need to either |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
365 supply a full node identifier (with number, eg "[issue123]" or keep the |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
366 previous subject title intact so I can match that. |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
367 |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
368 Subject was: "%s" |
|
438
9d97c1a4ddad
Notes from changes.
Richard Jones <richard@users.sourceforge.net>
parents:
434
diff
changeset
|
369 '''%subject |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
370 |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
371 # If there's no nodeid, check to see if this is a followup and |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
372 # maybe someone's responded to the initial mail that created an |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
373 # entry. Try to find the matching nodes with the same title, and |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
374 # use the _last_ one matched (since that'll _usually_ be the most |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
375 # recent...) |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
376 if nodeid is None and m.group('refwd'): |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
377 l = cl.stringFind(title=title) |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
378 if l: |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
379 nodeid = l[-1] |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
380 |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
381 # if a nodeid was specified, make sure it's valid |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
382 if nodeid is not None and not cl.hasnode(nodeid): |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
383 raise MailUsageError, ''' |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
384 The node specified by the designator in the subject of your message ("%s") |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
385 does not exist. |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
386 |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
387 Subject was: "%s" |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
388 '''%(nodeid, subject) |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
389 |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
390 # |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
391 # extract the args |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
392 # |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
393 subject_args = m.group('args') |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
394 |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
395 # |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
396 # handle the subject argument list |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
397 # |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
398 # figure what the properties of this Class are |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
399 properties = cl.getprops() |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
400 props = {} |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
401 args = m.group('args') |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
402 if args: |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
403 errors = [] |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
404 for prop in string.split(args, ';'): |
|
537
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
405 # extract the property name and value |
|
287
ee2f4cb160bd
Implemented the comma-separated printing option in the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
286
diff
changeset
|
406 try: |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
407 propname, value = prop.split('=') |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
408 except ValueError, message: |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
409 errors.append('not of form [arg=value,' |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
410 'value,...;arg=value,value...]') |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
411 break |
|
537
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
412 |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
413 # ensure it's a valid property name |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
414 propname = propname.strip() |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
415 try: |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
416 proptype = properties[propname] |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
417 except KeyError: |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
418 errors.append('refers to an invalid property: ' |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
419 '"%s"'%propname) |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
420 continue |
|
537
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
421 |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
422 # convert the string value to a real property value |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
423 if isinstance(proptype, hyperdb.String): |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
424 props[propname] = value.strip() |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
425 if isinstance(proptype, hyperdb.Password): |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
426 props[propname] = password.Password(value.strip()) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
427 elif isinstance(proptype, hyperdb.Date): |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
428 try: |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
429 props[propname] = date.Date(value.strip()) |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
430 except ValueError, message: |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
431 errors.append('contains an invalid date for ' |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
432 '%s.'%propname) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
433 elif isinstance(proptype, hyperdb.Interval): |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
434 try: |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
435 props[propname] = date.Interval(value) |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
436 except ValueError, message: |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
437 errors.append('contains an invalid date interval' |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
438 'for %s.'%propname) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
439 elif isinstance(proptype, hyperdb.Link): |
|
560
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
440 linkcl = self.db.classes[proptype.classname] |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
441 propkey = linkcl.labelprop(default_to_id=1) |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
442 try: |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
443 props[propname] = linkcl.lookup(value) |
|
560
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
444 except KeyError, message: |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
445 errors.append('"%s" is not a value for %s.'%(value, |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
446 propname)) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
447 elif isinstance(proptype, hyperdb.Multilink): |
|
537
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
448 # get the linked class |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
449 linkcl = self.db.classes[proptype.classname] |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
450 propkey = linkcl.labelprop(default_to_id=1) |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
451 if nodeid: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
452 curvalue = cl.get(nodeid, propname) |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
453 else: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
454 curvalue = [] |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
455 |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
456 # handle each add/remove in turn |
|
847
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
457 # keep an extra list for all items that are |
|
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
458 # definitely in the new list (in case of e.g. |
|
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
459 # <propname>=A,+B, which should replace the old |
|
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
460 # list with A,B) |
|
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
461 set = 0 |
|
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
462 newvalue = [] |
|
537
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
463 for item in value.split(','): |
|
560
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
464 item = item.strip() |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
465 |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
466 # handle +/- |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
467 remove = 0 |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
468 if item.startswith('-'): |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
469 remove = 1 |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
470 item = item[1:] |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
471 elif item.startswith('+'): |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
472 item = item[1:] |
|
847
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
473 else: |
|
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
474 set = 1 |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
475 |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
476 # look up the value |
|
560
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
477 try: |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
478 item = linkcl.lookup(item) |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
479 except KeyError, message: |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
480 errors.append('"%s" is not a value for %s.'%(item, |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
481 propname)) |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
482 continue |
|
560
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
483 |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
484 # perform the add/remove |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
485 if remove: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
486 try: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
487 curvalue.remove(item) |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
488 except ValueError: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
489 errors.append('"%s" is not currently in ' |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
490 'for %s.'%(item, propname)) |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
491 continue |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
492 else: |
|
847
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
493 newvalue.append(item) |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
494 if item not in curvalue: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
495 curvalue.append(item) |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
496 |
|
847
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
497 # that's it, set the new Multilink property value, |
|
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
498 # or overwrite it completely |
|
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
499 if set: |
|
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
500 props[propname] = newvalue |
|
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
501 else: |
|
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
502 props[propname] = curvalue |
|
880
de3da99a7c02
Add Number and Boolean types to hyperdb.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
847
diff
changeset
|
503 elif isinstance(proptype, hyperdb.Boolean): |
|
de3da99a7c02
Add Number and Boolean types to hyperdb.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
847
diff
changeset
|
504 value = value.strip() |
|
de3da99a7c02
Add Number and Boolean types to hyperdb.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
847
diff
changeset
|
505 props[propname] = value.lower() in ('yes', 'true', 'on', '1') |
|
de3da99a7c02
Add Number and Boolean types to hyperdb.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
847
diff
changeset
|
506 elif isinstance(proptype, hyperdb.Number): |
|
de3da99a7c02
Add Number and Boolean types to hyperdb.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
847
diff
changeset
|
507 value = value.strip() |
|
de3da99a7c02
Add Number and Boolean types to hyperdb.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
847
diff
changeset
|
508 props[propname] = int(value) |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
509 |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
510 # handle any errors parsing the argument list |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
511 if errors: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
512 errors = '\n- '.join(errors) |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
513 raise MailUsageError, ''' |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
514 There were problems handling your subject line argument list: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
515 - %s |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
516 |
|
560
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
517 Subject was: "%s" |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
518 '''%(errors, subject) |
|
434
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
519 |
|
264
a671e5917b33
Many features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
244
diff
changeset
|
520 # |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
521 # handle the users |
|
264
a671e5917b33
Many features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
244
diff
changeset
|
522 # |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
523 |
|
905
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
524 # Don't create users if anonymous isn't allowed to register |
|
615
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
525 create = 1 |
|
905
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
526 anonid = self.db.user.lookup('anonymous') |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
527 if not self.db.security.hasPermission('Email Registration', anonid): |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
528 create = 0 |
|
615
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
529 |
|
905
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
530 author = uidFromAddress(self.db, message.getaddrlist('from')[0], |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
531 create=create) |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
532 if not author: |
|
905
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
533 raise Unauthorized, ''' |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
534 You are not a registered user. |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
535 |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
536 Unknown address: %s |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
537 '''%message.getaddrlist('from')[0][1] |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
538 |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
539 # the author may have been created - make sure the change is |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
540 # committed before we reopen the database |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
541 self.db.commit() |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
542 |
|
389
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
543 # reopen the database as the author |
|
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
544 username = self.db.user.get(author, 'username') |
|
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
545 self.db = self.instance.open(username) |
|
419
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
546 |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
547 # re-get the class with the new database connection |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
548 cl = self.db.getclass(classname) |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
549 |
|
389
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
550 # now update the recipients list |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
551 recipients = [] |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
552 tracker_email = self.instance.ISSUE_TRACKER_EMAIL.lower() |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
553 for recipient in message.getaddrlist('to') + message.getaddrlist('cc'): |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
554 r = recipient[1].strip().lower() |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
555 if r == tracker_email or not r: |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
556 continue |
|
699
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
557 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
558 # look up the recipient - create if necessary (and we're |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
559 # allowed to) |
|
905
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
560 recipient = uidFromAddress(self.db, recipient, create) |
|
699
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
561 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
562 # if all's well, add the recipient to the list |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
563 if recipient: |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
564 recipients.append(recipient) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
565 |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
566 # |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
567 # handle message-id and in-reply-to |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
568 # |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
569 messageid = message.getheader('message-id') |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
570 inreplyto = message.getheader('in-reply-to') or '' |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
571 # generate a messageid if there isn't one |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
572 if not messageid: |
|
499
9ad589d0a60f
Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents:
476
diff
changeset
|
573 messageid = "<%s.%s.%s%s@%s>"%(time.time(), random.random(), |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
574 classname, nodeid, self.instance.MAIL_DOMAIN) |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
575 |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
576 # |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
577 # now handle the body - find the message |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
578 # |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
579 content_type = message.gettype() |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
580 attachments = [] |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
581 # General multipart handling: |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
582 # Take the first text/plain part, anything else is considered an |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
583 # attachment. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
584 # multipart/mixed: multiple "unrelated" parts. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
585 # multipart/signed (rfc 1847): |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
586 # The control information is carried in the second of the two |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
587 # required body parts. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
588 # ACTION: Default, so if content is text/plain we get it. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
589 # multipart/encrypted (rfc 1847): |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
590 # The control information is carried in the first of the two |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
591 # required body parts. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
592 # ACTION: Not handleable as the content is encrypted. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
593 # multipart/related (rfc 1872, 2112, 2387): |
|
661
cdcee6721841
. [SF#517734] web header customisation is obscure
Richard Jones <richard@users.sourceforge.net>
parents:
616
diff
changeset
|
594 # The Multipart/Related content-type addresses the MIME |
|
cdcee6721841
. [SF#517734] web header customisation is obscure
Richard Jones <richard@users.sourceforge.net>
parents:
616
diff
changeset
|
595 # representation of compound objects. |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
596 # ACTION: Default. If we are lucky there is a text/plain. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
597 # TODO: One should use the start part and look for an Alternative |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
598 # that is text/plain. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
599 # multipart/Alternative (rfc 1872, 1892): |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
600 # only in "related" ? |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
601 # multipart/report (rfc 1892): |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
602 # e.g. mail system delivery status reports. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
603 # ACTION: Default. Could be ignored or used for Delivery Notification |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
604 # flagging. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
605 # multipart/form-data: |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
606 # For web forms only. |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
607 if content_type == 'multipart/mixed': |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
608 # skip over the intro to the first boundary |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
609 part = message.getPart() |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
610 content = None |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
611 while 1: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
612 # get the next part |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
613 part = message.getPart() |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
614 if part is None: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
615 break |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
616 # parse it |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
617 subtype = part.gettype() |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
618 if subtype == 'text/plain' and not content: |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
619 # The first text/plain part is the message content. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
620 content = self.get_part_data_decoded(part) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
621 elif subtype == 'message/rfc822': |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
622 # handle message/rfc822 specially - the name should be |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
623 # the subject of the actual e-mail embedded here |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
624 i = part.fp.tell() |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
625 mailmess = Message(part.fp) |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
626 name = mailmess.getheader('subject') |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
627 part.fp.seek(i) |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
628 attachments.append((name, 'message/rfc822', part.fp.read())) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
629 else: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
630 # try name on Content-Type |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
631 name = part.getparam('name') |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
632 # this is just an attachment |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
633 data = self.get_part_data_decoded(part) |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
634 attachments.append((name, part.gettype(), data)) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
635 if content is None: |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
636 raise MailUsageError, ''' |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
637 Roundup requires the submission to be plain text. The message parser could |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
638 not find a text/plain part to use. |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
639 ''' |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
640 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
641 elif content_type[:10] == 'multipart/': |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
642 # skip over the intro to the first boundary |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
643 message.getPart() |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
644 content = None |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
645 while 1: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
646 # get the next part |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
647 part = message.getPart() |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
648 if part is None: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
649 break |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
650 # parse it |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
651 if part.gettype() == 'text/plain' and not content: |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
652 content = self.get_part_data_decoded(part) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
653 if content is None: |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
654 raise MailUsageError, ''' |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
655 Roundup requires the submission to be plain text. The message parser could |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
656 not find a text/plain part to use. |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
657 ''' |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
658 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
659 elif content_type != 'text/plain': |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
660 raise MailUsageError, ''' |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
661 Roundup requires the submission to be plain text. The message parser could |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
662 not find a text/plain part to use. |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
663 ''' |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
664 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
665 else: |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
666 content = self.get_part_data_decoded(message) |
|
599
08aae4d34622
respect encodings in non multipart messages.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
595
diff
changeset
|
667 |
|
734
a55c0622dced
Added note to MIGRATION about new config vars.
Richard Jones <richard@users.sourceforge.net>
parents:
710
diff
changeset
|
668 # figure how much we should muck around with the email body |
|
a55c0622dced
Added note to MIGRATION about new config vars.
Richard Jones <richard@users.sourceforge.net>
parents:
710
diff
changeset
|
669 keep_citations = getattr(self.instance, 'EMAIL_KEEP_QUOTED_TEXT', |
|
a55c0622dced
Added note to MIGRATION about new config vars.
Richard Jones <richard@users.sourceforge.net>
parents:
710
diff
changeset
|
670 'no') == 'yes' |
|
a55c0622dced
Added note to MIGRATION about new config vars.
Richard Jones <richard@users.sourceforge.net>
parents:
710
diff
changeset
|
671 keep_body = getattr(self.instance, 'EMAIL_LEAVE_BODY_UNCHANGED', |
|
a55c0622dced
Added note to MIGRATION about new config vars.
Richard Jones <richard@users.sourceforge.net>
parents:
710
diff
changeset
|
672 'no') == 'yes' |
|
a55c0622dced
Added note to MIGRATION about new config vars.
Richard Jones <richard@users.sourceforge.net>
parents:
710
diff
changeset
|
673 |
|
a55c0622dced
Added note to MIGRATION about new config vars.
Richard Jones <richard@users.sourceforge.net>
parents:
710
diff
changeset
|
674 # parse the body of the message, stripping out bits as appropriate |
|
694
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
675 summary, content = parseContent(content, keep_citations, |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
676 keep_body) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
677 |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
678 # |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
679 # handle the attachments |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
680 # |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
681 files = [] |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
682 for (name, mime_type, data) in attachments: |
|
545
d276d72ebdaf
if the attachment has no name, name it unnamed, happens with tnefs.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
544
diff
changeset
|
683 if not name: |
|
d276d72ebdaf
if the attachment has no name, name it unnamed, happens with tnefs.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
544
diff
changeset
|
684 name = "unnamed" |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
685 files.append(self.db.file.create(type=mime_type, name=name, |
|
172
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
686 content=data)) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
687 |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
688 # |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
689 # create the message if there's a message body (content) |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
690 # |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
691 if content: |
|
172
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
692 message_id = self.db.msg.create(author=author, |
|
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
693 recipients=recipients, date=date.Date('.'), summary=summary, |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
694 content=content, files=files, messageid=messageid, |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
695 inreplyto=inreplyto) |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
696 |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
697 # attach the message to the node |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
698 if nodeid: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
699 # add the message to the node's list |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
700 messages = cl.get(nodeid, 'messages') |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
701 messages.append(message_id) |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
702 props['messages'] = messages |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
703 else: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
704 # pre-load the messages list |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
705 props['messages'] = [message_id] |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
706 |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
707 # set the title to the subject |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
708 if properties.has_key('title') and not props.has_key('title'): |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
709 props['title'] = title |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
710 |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
711 # |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
712 # perform the node change / create |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
713 # |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
714 try: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
715 if nodeid: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
716 cl.set(nodeid, **props) |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
717 else: |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
718 nodeid = cl.create(**props) |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
719 except (TypeError, IndexError, ValueError), message: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
720 raise MailUsageError, ''' |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
721 There was a problem with the message you sent: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
722 %s |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
723 '''%message |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
724 |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
725 # commit the changes to the DB |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
726 self.db.commit() |
|
430
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
727 |
|
699
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
728 return nodeid |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
729 |
|
905
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
730 def extractUserFromList(userClass, users): |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
731 '''Given a list of users, try to extract the first non-anonymous user |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
732 and return that user, otherwise return None |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
733 ''' |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
734 if len(users) > 1: |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
735 for user in users: |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
736 # make sure we don't match the anonymous or admin user |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
737 if userClass.get(user, 'username') in ('admin', 'anonymous'): |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
738 continue |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
739 # first valid match will do |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
740 return user |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
741 # well, I guess we have no choice |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
742 return user[0] |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
743 elif users: |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
744 return users[0] |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
745 return None |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
746 |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
747 def uidFromAddress(db, address, create=1): |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
748 ''' address is from the rfc822 module, and therefore is (name, addr) |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
749 |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
750 user is created if they don't exist in the db already |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
751 ''' |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
752 (realname, address) = address |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
753 |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
754 # try a straight match of the address |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
755 user = extractUserFromList(db.user, db.user.stringFind(address=address)) |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
756 if user is not None: return user |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
757 |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
758 # try the user alternate addresses if possible |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
759 props = db.user.getprops() |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
760 if props.has_key('alternate_addresses'): |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
761 users = db.user.filter(None, {'alternate_addresses': address}, |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
762 [], []) |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
763 user = extractUserFromList(db.user, users) |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
764 if user is not None: return user |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
765 |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
766 # try to match the username to the address (for local |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
767 # submissions where the address is empty) |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
768 user = extractUserFromList(db.user, db.user.stringFind(username=address)) |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
769 |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
770 # couldn't match address or username, so create a new user |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
771 if create: |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
772 return db.user.create(username=address, address=address, |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
773 realname=realname, roles=db.config.NEW_EMAIL_USER_ROLES) |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
774 else: |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
775 return 0 |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
776 |
|
694
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
777 def parseContent(content, keep_citations, keep_body, |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
778 blank_line=re.compile(r'[\r\n]+\s*[\r\n]+'), |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
779 eol=re.compile(r'[\r\n]+'), |
|
706
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
780 signature=re.compile(r'^[>|\s]*[-_]+\s*$'), |
| 710 | 781 original_message=re.compile(r'^[>|\s]*-----Original Message-----$')): |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
782 ''' The message body is divided into sections by blank lines. |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
783 Sections where the second and all subsequent lines begin with a ">" or "|" |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
784 character are considered "quoting sections". The first line of the first |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
785 non-quoting section becomes the summary of the message. |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
786 ''' |
|
334
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
787 # strip off leading carriage-returns / newlines |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
788 i = 0 |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
789 for i in range(len(content)): |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
790 if content[i] not in '\r\n': |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
791 break |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
792 if i > 0: |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
793 sections = blank_line.split(content[i:]) |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
794 else: |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
795 sections = blank_line.split(content) |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
796 |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
797 # extract out the summary from the message |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
798 summary = '' |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
799 l = [] |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
800 for section in sections: |
|
334
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
801 #section = section.strip() |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
802 if not section: |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
803 continue |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
804 lines = eol.split(section) |
|
510
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
805 if (lines[0] and lines[0][0] in '>|') or (len(lines) > 1 and |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
806 lines[1] and lines[1][0] in '>|'): |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
807 # see if there's a response somewhere inside this section (ie. |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
808 # no blank line between quoted message and response) |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
809 for line in lines[1:]: |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
810 if line[0] not in '>|': |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
811 break |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
812 else: |
|
694
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
813 # we keep quoted bits if specified in the config |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
814 if keep_citations: |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
815 l.append(section) |
|
510
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
816 continue |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
817 # keep this section - it has reponse stuff in it |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
818 if not summary: |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
819 # and while we're at it, use the first non-quoted bit as |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
820 # our summary |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
821 summary = line |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
822 lines = lines[lines.index(line):] |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
823 section = '\n'.join(lines) |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
824 |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
825 if not summary: |
|
510
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
826 # if we don't have our summary yet use the first line of this |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
827 # section |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
828 summary = lines[0] |
|
706
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
829 elif signature.match(lines[0]) and 2 <= len(lines) <= 10: |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
830 # lose any signature |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
831 break |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
832 elif original_message.match(lines[0]): |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
833 # ditch the stupid Outlook quoting of the entire original message |
| 454 | 834 break |
|
510
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
835 |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
836 # and add the section to the output |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
837 l.append(section) |
|
694
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
838 # we only set content for those who want to delete cruft from the |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
839 # message body, otherwise the body is left untouched. |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
840 if not keep_body: |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
841 content = '\n\n'.join(l) |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
842 return summary, content |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
843 |
|
26
c7c14960f413
Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
25
diff
changeset
|
844 # |
|
c7c14960f413
Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
25
diff
changeset
|
845 # $Log: not supported by cvs2svn $ |
|
905
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
846 # Revision 1.78 2002/07/25 07:14:06 richard |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
847 # Bugger it. Here's the current shape of the new security implementation. |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
848 # Still to do: |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
849 # . call the security funcs from cgi and mailgw |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
850 # . change shipped templates to include correct initialisation and remove |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
851 # the old config vars |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
852 # ... that seems like a lot. The bulk of the work has been done though. Honest :) |
|
502a5ae11cc5
Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents:
902
diff
changeset
|
853 # |
|
902
b0d3d3535998
Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents:
880
diff
changeset
|
854 # Revision 1.77 2002/07/18 11:17:31 gmcm |
|
b0d3d3535998
Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents:
880
diff
changeset
|
855 # Add Number and Boolean types to hyperdb. |
|
b0d3d3535998
Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents:
880
diff
changeset
|
856 # Add conversion cases to web, mail & admin interfaces. |
|
b0d3d3535998
Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents:
880
diff
changeset
|
857 # Add storage/serialization cases to back_anydbm & back_metakit. |
|
b0d3d3535998
Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents:
880
diff
changeset
|
858 # |
|
880
de3da99a7c02
Add Number and Boolean types to hyperdb.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
847
diff
changeset
|
859 # Revision 1.76 2002/07/10 06:39:37 richard |
|
de3da99a7c02
Add Number and Boolean types to hyperdb.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
847
diff
changeset
|
860 # . made mailgw handle set and modify operations on multilinks (bug #579094) |
|
de3da99a7c02
Add Number and Boolean types to hyperdb.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
847
diff
changeset
|
861 # |
|
847
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
862 # Revision 1.75 2002/07/09 01:21:24 richard |
|
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
863 # Added ability for unit tests to turn off exception handling in mailgw so |
|
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
864 # that exceptions are reported earlier (and hence make sense). |
|
0f0f6049c9a7
made mailgw handle set and modify operations on multilinks [SF#579094]
Richard Jones <richard@users.sourceforge.net>
parents:
824
diff
changeset
|
865 # |
|
824
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
866 # Revision 1.74 2002/05/29 01:16:17 richard |
|
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
867 # Sorry about this huge checkin! It's fixing a lot of related stuff in one go |
|
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
868 # though. |
|
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
869 # |
|
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
870 # . #541941 ] changing multilink properties by mail |
|
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
871 # . #526730 ] search for messages capability |
|
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
872 # . #505180 ] split MailGW.handle_Message |
|
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
873 # - also changed cgi client since it was duplicating the functionality |
|
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
874 # . build htmlbase if tests are run using CVS checkout (removed note from |
|
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
875 # installation.txt) |
|
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
876 # . don't create an empty message on email issue creation if the email is empty |
|
34eacaa7e313
Added ability for unit tests to turn off exception handling in mailgw so
Richard Jones <richard@users.sourceforge.net>
parents:
753
diff
changeset
|
877 # |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
878 # Revision 1.73 2002/05/22 04:12:05 richard |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
879 # . applied patch #558876 ] cgi client customization |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
880 # ... with significant additions and modifications ;) |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
881 # - extended handling of ML assignedto to all places it's handled |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
882 # - added more NotFound info |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
736
diff
changeset
|
883 # |
|
736
b0d887310f7a
applied patch [SF#558876] cgi client customization
Richard Jones <richard@users.sourceforge.net>
parents:
734
diff
changeset
|
884 # Revision 1.72 2002/05/22 01:24:51 richard |
|
b0d887310f7a
applied patch [SF#558876] cgi client customization
Richard Jones <richard@users.sourceforge.net>
parents:
734
diff
changeset
|
885 # Added note to MIGRATION about new config vars. Also made us more resilient |
|
b0d887310f7a
applied patch [SF#558876] cgi client customization
Richard Jones <richard@users.sourceforge.net>
parents:
734
diff
changeset
|
886 # for upgraders. Reinstated list header style (oops) |
|
b0d887310f7a
applied patch [SF#558876] cgi client customization
Richard Jones <richard@users.sourceforge.net>
parents:
734
diff
changeset
|
887 # |
|
734
a55c0622dced
Added note to MIGRATION about new config vars.
Richard Jones <richard@users.sourceforge.net>
parents:
710
diff
changeset
|
888 # Revision 1.71 2002/05/08 02:40:55 richard |
|
a55c0622dced
Added note to MIGRATION about new config vars.
Richard Jones <richard@users.sourceforge.net>
parents:
710
diff
changeset
|
889 # grr |
|
a55c0622dced
Added note to MIGRATION about new config vars.
Richard Jones <richard@users.sourceforge.net>
parents:
710
diff
changeset
|
890 # |
| 710 | 891 # Revision 1.70 2002/05/06 23:40:07 richard |
| 892 # hrm | |
| 893 # | |
| 709 | 894 # Revision 1.69 2002/05/06 23:37:21 richard |
| 895 # Tweaking the signature deletion from mail messages. | |
| 896 # Added nuking of the "-----Original Message-----" crap from Outlook. | |
| 897 # | |
|
706
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
898 # Revision 1.68 2002/05/02 07:56:34 richard |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
899 # . added option to automatically add the authors and recipients of messages |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
900 # to the nosy lists with the options ADD_AUTHOR_TO_NOSY (default 'new') and |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
901 # ADD_RECIPIENTS_TO_NOSY (default 'new'). These settings emulate the current |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
902 # behaviour. Setting them to 'yes' will add the author/recipients to the nosy |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
903 # on messages that create issues and followup messages. |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
904 # . added missing documentation for a few of the config option values |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
905 # |
|
699
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
906 # Revision 1.67 2002/04/23 15:46:49 rochecompaan |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
907 # . stripping of the email message body can now be controlled through |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
908 # the config variables EMAIL_KEEP_QUOTED_TEST and |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
909 # EMAIL_LEAVE_BODY_UNCHANGED. |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
910 # |
|
694
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
911 # Revision 1.66 2002/03/14 23:59:24 richard |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
912 # . #517734 ] web header customisation is obscure |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
913 # |
|
661
cdcee6721841
. [SF#517734] web header customisation is obscure
Richard Jones <richard@users.sourceforge.net>
parents:
616
diff
changeset
|
914 # Revision 1.65 2002/02/15 00:13:38 richard |
|
cdcee6721841
. [SF#517734] web header customisation is obscure
Richard Jones <richard@users.sourceforge.net>
parents:
616
diff
changeset
|
915 # . #503204 ] mailgw needs a default class |
|
cdcee6721841
. [SF#517734] web header customisation is obscure
Richard Jones <richard@users.sourceforge.net>
parents:
616
diff
changeset
|
916 # - partially done - the setting of additional properties can wait for a |
|
cdcee6721841
. [SF#517734] web header customisation is obscure
Richard Jones <richard@users.sourceforge.net>
parents:
616
diff
changeset
|
917 # better configuration system. |
|
cdcee6721841
. [SF#517734] web header customisation is obscure
Richard Jones <richard@users.sourceforge.net>
parents:
616
diff
changeset
|
918 # |
|
616
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
919 # Revision 1.64 2002/02/14 23:46:02 richard |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
920 # . #516883 ] mail interface + ANONYMOUS_REGISTER |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
921 # |
|
615
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
922 # Revision 1.63 2002/02/12 08:08:55 grubert |
|
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
923 # . Clean up mail handling, multipart handling. |
|
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
924 # |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
925 # Revision 1.62 2002/02/05 14:15:29 grubert |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
926 # . respect encodings in non multipart messages. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
927 # |
|
599
08aae4d34622
respect encodings in non multipart messages.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
595
diff
changeset
|
928 # Revision 1.61 2002/02/04 09:40:21 grubert |
|
08aae4d34622
respect encodings in non multipart messages.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
595
diff
changeset
|
929 # . add test for multipart messages with first part being encoded. |
|
08aae4d34622
respect encodings in non multipart messages.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
595
diff
changeset
|
930 # |
|
595
4c3dcda799f7
add test for multipart messages with first part being encoded.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
594
diff
changeset
|
931 # Revision 1.60 2002/02/01 07:43:12 grubert |
|
4c3dcda799f7
add test for multipart messages with first part being encoded.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
594
diff
changeset
|
932 # . mailgw checks encoding on first part too. |
|
4c3dcda799f7
add test for multipart messages with first part being encoded.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
594
diff
changeset
|
933 # |
|
594
82555a1429d0
mailgw checks encoding on first part too.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
590
diff
changeset
|
934 # Revision 1.59 2002/01/23 21:43:23 richard |
|
82555a1429d0
mailgw checks encoding on first part too.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
590
diff
changeset
|
935 # tabnuke |
|
82555a1429d0
mailgw checks encoding on first part too.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
590
diff
changeset
|
936 # |
| 590 | 937 # Revision 1.58 2002/01/23 21:41:56 richard |
| 938 # . mailgw failures (unexpected ones) are forwarded to the roundup admin | |
| 939 # | |
|
588
16d13b9b8321
mailgw failures (unexpected ones) are forwarded to the roundup admin
Richard Jones <richard@users.sourceforge.net>
parents:
573
diff
changeset
|
940 # Revision 1.57 2002/01/22 22:27:43 richard |
|
16d13b9b8321
mailgw failures (unexpected ones) are forwarded to the roundup admin
Richard Jones <richard@users.sourceforge.net>
parents:
573
diff
changeset
|
941 # . handle stripping of "AW:" from subject line |
|
16d13b9b8321
mailgw failures (unexpected ones) are forwarded to the roundup admin
Richard Jones <richard@users.sourceforge.net>
parents:
573
diff
changeset
|
942 # |
|
573
f0513f650042
handle stripping of "AW:" from subject line
Richard Jones <richard@users.sourceforge.net>
parents:
571
diff
changeset
|
943 # Revision 1.56 2002/01/22 11:54:45 rochecompaan |
|
f0513f650042
handle stripping of "AW:" from subject line
Richard Jones <richard@users.sourceforge.net>
parents:
571
diff
changeset
|
944 # Fixed status change in mail gateway. |
|
f0513f650042
handle stripping of "AW:" from subject line
Richard Jones <richard@users.sourceforge.net>
parents:
571
diff
changeset
|
945 # |
|
571
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
946 # Revision 1.55 2002/01/21 10:05:47 rochecompaan |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
947 # Feature: |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
948 # . the mail gateway now responds with an error message when invalid |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
949 # values for arguments are specified for link or multilink properties |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
950 # . modified unit test to check nosy and assignedto when specified as |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
951 # arguments |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
952 # |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
953 # Fixed: |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
954 # . fixed setting nosy as argument in subject line |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
955 # |
|
560
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
956 # Revision 1.54 2002/01/16 09:14:45 grubert |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
957 # . if the attachment has no name, name it unnamed, happens with tnefs. |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
958 # |
|
545
d276d72ebdaf
if the attachment has no name, name it unnamed, happens with tnefs.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
544
diff
changeset
|
959 # Revision 1.53 2002/01/16 07:20:54 richard |
|
d276d72ebdaf
if the attachment has no name, name it unnamed, happens with tnefs.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
544
diff
changeset
|
960 # simple help command for mailgw |
|
d276d72ebdaf
if the attachment has no name, name it unnamed, happens with tnefs.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
544
diff
changeset
|
961 # |
|
544
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
962 # Revision 1.52 2002/01/15 00:12:40 richard |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
963 # #503340 ] creating issue with [asignedto=p.ohly] |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
964 # |
|
537
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
965 # Revision 1.51 2002/01/14 02:20:15 richard |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
966 # . changed all config accesses so they access either the instance or the |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
967 # config attriubute on the db. This means that all config is obtained from |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
968 # instance_config instead of the mish-mash of classes. This will make |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
969 # switching to a ConfigParser setup easier too, I hope. |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
970 # |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
971 # At a minimum, this makes migration a _little_ easier (a lot easier in the |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
972 # 0.5.0 switch, I hope!) |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
973 # |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
974 # Revision 1.50 2002/01/11 22:59:01 richard |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
975 # . #502342 ] pipe interface |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
976 # |
|
521
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
977 # Revision 1.49 2002/01/10 06:19:18 richard |
|
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
978 # followup lines directly after a quoted section were being eaten. |
|
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
979 # |
|
510
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
980 # Revision 1.48 2002/01/08 04:12:05 richard |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
981 # Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822 |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
982 # |
|
499
9ad589d0a60f
Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents:
476
diff
changeset
|
983 # Revision 1.47 2002/01/02 02:32:38 richard |
|
9ad589d0a60f
Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents:
476
diff
changeset
|
984 # ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER |
|
9ad589d0a60f
Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents:
476
diff
changeset
|
985 # |
|
476
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
986 # Revision 1.46 2002/01/02 02:31:38 richard |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
987 # Sorry for the huge checkin message - I was only intending to implement #496356 |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
988 # but I found a number of places where things had been broken by transactions: |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
989 # . modified ROUNDUPDBSENDMAILDEBUG to be SENDMAILDEBUG and hold a filename |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
990 # for _all_ roundup-generated smtp messages to be sent to. |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
991 # . the transaction cache had broken the roundupdb.Class set() reactors |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
992 # . newly-created author users in the mailgw weren't being committed to the db |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
993 # |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
994 # Stuff that made it into CHANGES.txt (ie. the stuff I was actually working |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
995 # on when I found that stuff :): |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
996 # . #496356 ] Use threading in messages |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
997 # . detectors were being registered multiple times |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
998 # . added tests for mailgw |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
999 # . much better attaching of erroneous messages in the mail gateway |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
1000 # |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
1001 # Revision 1.45 2001/12/20 15:43:01 rochecompaan |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
1002 # Features added: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
1003 # . Multilink properties are now displayed as comma separated values in |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
1004 # a textbox |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
1005 # . The add user link is now only visible to the admin user |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
1006 # . Modified the mail gateway to reject submissions from unknown |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
1007 # addresses if ANONYMOUS_ACCESS is denied |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
1008 # |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
1009 # Revision 1.44 2001/12/18 15:30:34 rochecompaan |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
1010 # Fixed bugs: |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
1011 # . Fixed file creation and retrieval in same transaction in anydbm |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
1012 # backend |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
1013 # . Cgi interface now renders new issue after issue creation |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
1014 # . Could not set issue status to resolved through cgi interface |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
1015 # . Mail gateway was changing status back to 'chatting' if status was |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
1016 # omitted as an argument |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
1017 # |
|
464
29f5ac8a0d2b
Fixed bugs:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
454
diff
changeset
|
1018 # Revision 1.43 2001/12/15 19:39:01 rochecompaan |
|
29f5ac8a0d2b
Fixed bugs:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
454
diff
changeset
|
1019 # Oops. |
|
29f5ac8a0d2b
Fixed bugs:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
454
diff
changeset
|
1020 # |
| 454 | 1021 # Revision 1.42 2001/12/15 19:24:39 rochecompaan |
| 1022 # . Modified cgi interface to change properties only once all changes are | |
| 1023 # collected, files created and messages generated. | |
| 1024 # . Moved generation of change note to nosyreactors. | |
| 1025 # . We now check for changes to "assignedto" to ensure it's added to the | |
| 1026 # nosy list. | |
|
453
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
1027 # |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
1028 # Revision 1.41 2001/12/10 00:57:38 richard |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
1029 # From CHANGES: |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
1030 # . Added the "display" command to the admin tool - displays a node's values |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
1031 # . #489760 ] [issue] only subject |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
1032 # . fixed the doc/index.html to include the quoting in the mail alias. |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
1033 # |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
1034 # Also: |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
1035 # . fixed roundup-admin so it works with transactions |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
1036 # . disabled the back_anydbm module if anydbm tries to use dumbdbm |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
1037 # |
|
438
9d97c1a4ddad
Notes from changes.
Richard Jones <richard@users.sourceforge.net>
parents:
434
diff
changeset
|
1038 # Revision 1.40 2001/12/05 14:26:44 rochecompaan |
|
9d97c1a4ddad
Notes from changes.
Richard Jones <richard@users.sourceforge.net>
parents:
434
diff
changeset
|
1039 # Removed generation of change note from "sendmessage" in roundupdb.py. |
|
9d97c1a4ddad
Notes from changes.
Richard Jones <richard@users.sourceforge.net>
parents:
434
diff
changeset
|
1040 # The change note is now generated when the message is created. |
|
9d97c1a4ddad
Notes from changes.
Richard Jones <richard@users.sourceforge.net>
parents:
434
diff
changeset
|
1041 # |
|
434
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1042 # Revision 1.39 2001/12/02 05:06:16 richard |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1043 # . We now use weakrefs in the Classes to keep the database reference, so |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1044 # the close() method on the database is no longer needed. |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1045 # I bumped the minimum python requirement up to 2.1 accordingly. |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1046 # . #487480 ] roundup-server |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1047 # . #487476 ] INSTALL.txt |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1048 # |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1049 # I also cleaned up the change message / post-edit stuff in the cgi client. |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1050 # There's now a clearly marked "TODO: append the change note" where I believe |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1051 # the change note should be added there. The "changes" list will obviously |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1052 # have to be modified to be a dict of the changes, or somesuch. |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1053 # |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1054 # More testing needed. |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1055 # |
|
431
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1056 # Revision 1.38 2001/12/01 07:17:50 richard |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1057 # . We now have basic transaction support! Information is only written to |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1058 # the database when the commit() method is called. Only the anydbm |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1059 # backend is modified in this way - neither of the bsddb backends have been. |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1060 # The mail, admin and cgi interfaces all use commit (except the admin tool |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1061 # doesn't have a commit command, so interactive users can't commit...) |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1062 # . Fixed login/registration forwarding the user to the right page (or not, |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1063 # on a failure) |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1064 # |
|
430
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
1065 # Revision 1.37 2001/11/28 21:55:35 richard |
|
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
1066 # . login_action and newuser_action return values were being ignored |
|
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
1067 # . Woohoo! Found that bloody re-login bug that was killing the mail |
|
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
1068 # gateway. |
|
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
1069 # (also a minor cleanup in hyperdb) |
|
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
1070 # |
|
419
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1071 # Revision 1.36 2001/11/26 22:55:56 richard |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1072 # Feature: |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1073 # . Added INSTANCE_NAME to configuration - used in web and email to identify |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1074 # the instance. |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1075 # . Added EMAIL_SIGNATURE_POSITION to indicate where to place the roundup |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1076 # signature info in e-mails. |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1077 # . Some more flexibility in the mail gateway and more error handling. |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1078 # . Login now takes you to the page you back to the were denied access to. |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1079 # |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1080 # Fixed: |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1081 # . Lots of bugs, thanks Roché and others on the devel mailing list! |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1082 # |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
1083 # Revision 1.35 2001/11/22 15:46:42 jhermann |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
1084 # Added module docstrings to all modules. |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
1085 # |
|
406
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
391
diff
changeset
|
1086 # Revision 1.34 2001/11/15 10:24:27 richard |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
391
diff
changeset
|
1087 # handle the case where there is no file attached |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
391
diff
changeset
|
1088 # |
|
391
399340646765
handle the case where there is no file attached
Richard Jones <richard@users.sourceforge.net>
parents:
389
diff
changeset
|
1089 # Revision 1.33 2001/11/13 21:44:44 richard |
|
399340646765
handle the case where there is no file attached
Richard Jones <richard@users.sourceforge.net>
parents:
389
diff
changeset
|
1090 # . re-open the database as the author in mail handling |
|
399340646765
handle the case where there is no file attached
Richard Jones <richard@users.sourceforge.net>
parents:
389
diff
changeset
|
1091 # |
|
389
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
1092 # Revision 1.32 2001/11/12 22:04:29 richard |
|
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
1093 # oops, left debug in there |
|
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
1094 # |
|
382
be28f4c4feb6
oops, left debug in there
Richard Jones <richard@users.sourceforge.net>
parents:
380
diff
changeset
|
1095 # Revision 1.31 2001/11/12 22:01:06 richard |
|
be28f4c4feb6
oops, left debug in there
Richard Jones <richard@users.sourceforge.net>
parents:
380
diff
changeset
|
1096 # Fixed issues with nosy reaction and author copies. |
|
be28f4c4feb6
oops, left debug in there
Richard Jones <richard@users.sourceforge.net>
parents:
380
diff
changeset
|
1097 # |
|
380
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
379
diff
changeset
|
1098 # Revision 1.30 2001/11/09 22:33:28 richard |
|
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
379
diff
changeset
|
1099 # More error handling fixes. |
|
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
379
diff
changeset
|
1100 # |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
1101 # Revision 1.29 2001/11/07 05:29:26 richard |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
1102 # Modified roundup-mailgw so it can read e-mails from a local mail spool |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
1103 # file. Truncates the spool file after parsing. |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
1104 # Fixed a couple of small bugs introduced in roundup.mailgw when I started |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
1105 # the popgw. |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
1106 # |
|
367
5140ccaaab1b
Modified roundup-mailgw so it can read e-mails from a local mail spool file.
Richard Jones <richard@users.sourceforge.net>
parents:
343
diff
changeset
|
1107 # Revision 1.28 2001/11/01 22:04:37 richard |
|
5140ccaaab1b
Modified roundup-mailgw so it can read e-mails from a local mail spool file.
Richard Jones <richard@users.sourceforge.net>
parents:
343
diff
changeset
|
1108 # Started work on supporting a pop3-fetching server |
|
5140ccaaab1b
Modified roundup-mailgw so it can read e-mails from a local mail spool file.
Richard Jones <richard@users.sourceforge.net>
parents:
343
diff
changeset
|
1109 # Fixed bugs: |
|
5140ccaaab1b
Modified roundup-mailgw so it can read e-mails from a local mail spool file.
Richard Jones <richard@users.sourceforge.net>
parents:
343
diff
changeset
|
1110 # . bug #477104 ] HTML tag error in roundup-server |
|
5140ccaaab1b
Modified roundup-mailgw so it can read e-mails from a local mail spool file.
Richard Jones <richard@users.sourceforge.net>
parents:
343
diff
changeset
|
1111 # . bug #477107 ] HTTP header problem |
|
5140ccaaab1b
Modified roundup-mailgw so it can read e-mails from a local mail spool file.
Richard Jones <richard@users.sourceforge.net>
parents:
343
diff
changeset
|
1112 # |
|
343
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
1113 # Revision 1.27 2001/10/30 11:26:10 richard |
|
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
1114 # Case-insensitive match for ISSUE_TRACKER_EMAIL in address in e-mail. |
|
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
1115 # |
|
339
4e39e26ede38
Case-insensitive match for ISSUE_TRACKER_EMAIL in address in e-mail.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
1116 # Revision 1.26 2001/10/30 00:54:45 richard |
|
4e39e26ede38
Case-insensitive match for ISSUE_TRACKER_EMAIL in address in e-mail.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
1117 # Features: |
|
4e39e26ede38
Case-insensitive match for ISSUE_TRACKER_EMAIL in address in e-mail.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
1118 # . #467129 ] Lossage when username=e-mail-address |
|
4e39e26ede38
Case-insensitive match for ISSUE_TRACKER_EMAIL in address in e-mail.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
1119 # . #473123 ] Change message generation for author |
|
4e39e26ede38
Case-insensitive match for ISSUE_TRACKER_EMAIL in address in e-mail.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
1120 # . MailGW now moves 'resolved' to 'chatting' on receiving e-mail for an issue. |
|
4e39e26ede38
Case-insensitive match for ISSUE_TRACKER_EMAIL in address in e-mail.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
1121 # |
| 337 | 1122 # Revision 1.25 2001/10/28 23:22:28 richard |
| 1123 # fixed bug #474749 ] Indentations lost | |
| 1124 # | |
|
334
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
1125 # Revision 1.24 2001/10/23 22:57:52 richard |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
1126 # Fix unread->chatting auto transition, thanks Roch'e |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
1127 # |
|
321
d0d6feb17d2f
Fix unread->chatting auto transition, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents:
311
diff
changeset
|
1128 # Revision 1.23 2001/10/21 04:00:20 richard |
|
d0d6feb17d2f
Fix unread->chatting auto transition, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents:
311
diff
changeset
|
1129 # MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue. |
|
d0d6feb17d2f
Fix unread->chatting auto transition, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents:
311
diff
changeset
|
1130 # |
|
311
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
1131 # Revision 1.22 2001/10/21 03:35:13 richard |
|
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
1132 # bug #473125: Paragraph in e-mails |
|
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
1133 # |
|
310
0ec8a9f1cbe6
[SF#473125]: Paragraph in e-mails
Richard Jones <richard@users.sourceforge.net>
parents:
309
diff
changeset
|
1134 # Revision 1.21 2001/10/21 00:53:42 richard |
|
0ec8a9f1cbe6
[SF#473125]: Paragraph in e-mails
Richard Jones <richard@users.sourceforge.net>
parents:
309
diff
changeset
|
1135 # bug #473130: Nosy list not set correctly |
|
0ec8a9f1cbe6
[SF#473125]: Paragraph in e-mails
Richard Jones <richard@users.sourceforge.net>
parents:
309
diff
changeset
|
1136 # |
|
309
f193e0a1b9a5
[SF#473130]: Nosy list not set correctly
Richard Jones <richard@users.sourceforge.net>
parents:
299
diff
changeset
|
1137 # Revision 1.20 2001/10/17 23:13:19 richard |
|
f193e0a1b9a5
[SF#473130]: Nosy list not set correctly
Richard Jones <richard@users.sourceforge.net>
parents:
299
diff
changeset
|
1138 # Did a fair bit of work on the admin tool. Now has an extra command "table" |
|
f193e0a1b9a5
[SF#473130]: Nosy list not set correctly
Richard Jones <richard@users.sourceforge.net>
parents:
299
diff
changeset
|
1139 # which displays node information in a tabular format. Also fixed import and |
|
f193e0a1b9a5
[SF#473130]: Nosy list not set correctly
Richard Jones <richard@users.sourceforge.net>
parents:
299
diff
changeset
|
1140 # export so they work. Removed freshen. |
|
f193e0a1b9a5
[SF#473130]: Nosy list not set correctly
Richard Jones <richard@users.sourceforge.net>
parents:
299
diff
changeset
|
1141 # Fixed quopri usage in mailgw from bug reports. |
|
f193e0a1b9a5
[SF#473130]: Nosy list not set correctly
Richard Jones <richard@users.sourceforge.net>
parents:
299
diff
changeset
|
1142 # |
|
299
fd9835c1e58d
Did a fair bit of work on the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
287
diff
changeset
|
1143 # Revision 1.19 2001/10/11 23:43:04 richard |
|
fd9835c1e58d
Did a fair bit of work on the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
287
diff
changeset
|
1144 # Implemented the comma-separated printing option in the admin tool. |
|
fd9835c1e58d
Did a fair bit of work on the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
287
diff
changeset
|
1145 # Fixed a typo (more of a vim-o actually :) in mailgw. |
|
fd9835c1e58d
Did a fair bit of work on the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
287
diff
changeset
|
1146 # |
|
287
ee2f4cb160bd
Implemented the comma-separated printing option in the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
286
diff
changeset
|
1147 # Revision 1.18 2001/10/11 06:38:57 richard |
|
ee2f4cb160bd
Implemented the comma-separated printing option in the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
286
diff
changeset
|
1148 # Initial cut at trying to handle people responding to CC'ed messages that |
|
ee2f4cb160bd
Implemented the comma-separated printing option in the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
286
diff
changeset
|
1149 # create an issue. |
|
ee2f4cb160bd
Implemented the comma-separated printing option in the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
286
diff
changeset
|
1150 # |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
1151 # Revision 1.17 2001/10/09 07:25:59 richard |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
1152 # Added the Password property type. See "pydoc roundup.password" for |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
1153 # implementation details. Have updated some of the documentation too. |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
1154 # |
|
270
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1155 # Revision 1.16 2001/10/05 02:23:24 richard |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1156 # . roundup-admin create now prompts for property info if none is supplied |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1157 # on the command-line. |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1158 # . hyperdb Class getprops() method may now return only the mutable |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1159 # properties. |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1160 # . Login now uses cookies, which makes it a whole lot more flexible. We can |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1161 # now support anonymous user access (read-only, unless there's an |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1162 # "anonymous" user, in which case write access is permitted). Login |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1163 # handling has been moved into cgi_client.Client.main() |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1164 # . The "extended" schema is now the default in roundup init. |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1165 # . The schemas have had their page headings modified to cope with the new |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1166 # login handling. Existing installations should copy the interfaces.py |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1167 # file from the roundup lib directory to their instance home. |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1168 # . Incorrectly had a Bizar Software copyright on the cgitb.py module from |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1169 # Ping - has been removed. |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1170 # . Fixed a whole bunch of places in the CGI interface where we should have |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1171 # been returning Not Found instead of throwing an exception. |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1172 # . Fixed a deviation from the spec: trying to modify the 'id' property of |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1173 # an item now throws an exception. |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1174 # |
|
264
a671e5917b33
Many features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
244
diff
changeset
|
1175 # Revision 1.15 2001/08/30 06:01:17 richard |
|
a671e5917b33
Many features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
244
diff
changeset
|
1176 # Fixed missing import in mailgw :( |
|
a671e5917b33
Many features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
244
diff
changeset
|
1177 # |
|
244
6bf584784e31
Fixed missing import in mailgw :(
Richard Jones <richard@users.sourceforge.net>
parents:
226
diff
changeset
|
1178 # Revision 1.14 2001/08/13 23:02:54 richard |
|
6bf584784e31
Fixed missing import in mailgw :(
Richard Jones <richard@users.sourceforge.net>
parents:
226
diff
changeset
|
1179 # Make the mail parser a little more robust. |
|
6bf584784e31
Fixed missing import in mailgw :(
Richard Jones <richard@users.sourceforge.net>
parents:
226
diff
changeset
|
1180 # |
|
226
8af4945246cb
Make the mail parser a little more robust.
Richard Jones <richard@users.sourceforge.net>
parents:
224
diff
changeset
|
1181 # Revision 1.13 2001/08/12 06:32:36 richard |
|
8af4945246cb
Make the mail parser a little more robust.
Richard Jones <richard@users.sourceforge.net>
parents:
224
diff
changeset
|
1182 # using isinstance(blah, Foo) now instead of isFooType |
|
8af4945246cb
Make the mail parser a little more robust.
Richard Jones <richard@users.sourceforge.net>
parents:
224
diff
changeset
|
1183 # |
|
224
ad2c98faec97
using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents:
221
diff
changeset
|
1184 # Revision 1.12 2001/08/08 01:27:00 richard |
|
ad2c98faec97
using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents:
221
diff
changeset
|
1185 # Added better error handling to mailgw. |
|
ad2c98faec97
using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents:
221
diff
changeset
|
1186 # |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
1187 # Revision 1.11 2001/08/08 00:08:03 richard |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
1188 # oops ;) |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
1189 # |
| 218 | 1190 # Revision 1.10 2001/08/07 00:24:42 richard |
| 1191 # stupid typo | |
| 1192 # | |
| 214 | 1193 # Revision 1.9 2001/08/07 00:15:51 richard |
| 1194 # Added the copyright/license notice to (nearly) all files at request of | |
| 1195 # Bizar Software. | |
| 1196 # | |
|
213
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
1197 # Revision 1.8 2001/08/05 07:06:07 richard |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
1198 # removed some print statements |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
1199 # |
|
202
d702ac2ceedb
removed some print statements
Richard Jones <richard@users.sourceforge.net>
parents:
198
diff
changeset
|
1200 # Revision 1.7 2001/08/03 07:18:22 richard |
|
d702ac2ceedb
removed some print statements
Richard Jones <richard@users.sourceforge.net>
parents:
198
diff
changeset
|
1201 # Implemented correct mail splitting (was taking a shortcut). Added unit |
|
d702ac2ceedb
removed some print statements
Richard Jones <richard@users.sourceforge.net>
parents:
198
diff
changeset
|
1202 # tests. Also snips signatures now too. |
|
d702ac2ceedb
removed some print statements
Richard Jones <richard@users.sourceforge.net>
parents:
198
diff
changeset
|
1203 # |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
1204 # Revision 1.6 2001/08/01 04:24:21 richard |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
1205 # mailgw was assuming certain properties existed on the issues being created. |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
1206 # |
|
172
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
1207 # Revision 1.5 2001/07/29 07:01:39 richard |
|
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
1208 # Added vim command to all source so that we don't get no steenkin' tabs :) |
|
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
1209 # |
|
127
0791d13baea7
Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents:
110
diff
changeset
|
1210 # Revision 1.4 2001/07/28 06:43:02 richard |
|
0791d13baea7
Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents:
110
diff
changeset
|
1211 # Multipart message class has the getPart method now. Added some tests for it. |
|
0791d13baea7
Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents:
110
diff
changeset
|
1212 # |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
1213 # Revision 1.3 2001/07/28 00:34:34 richard |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
1214 # Fixed some non-string node ids. |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
1215 # |
|
103
381016730332
Fixed some non-string node ids.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
1216 # Revision 1.2 2001/07/22 12:09:32 richard |
|
381016730332
Fixed some non-string node ids.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
1217 # Final commit of Grande Splite |
|
26
c7c14960f413
Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
25
diff
changeset
|
1218 # |
|
103
381016730332
Fixed some non-string node ids.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
1219 # |
|
127
0791d13baea7
Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents:
110
diff
changeset
|
1220 # vim: set filetype=python ts=4 sw=4 et si |
