| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
discard_these_nonmebers detail, found by Szilard Vizi.
|
| |
|
|
| |
Szilard Vizi.
|
| |
|
|
|
|
| |
markings. Found by Szilard Vizi.
password_inputs(): We don't need the <a name=...> bit anymore.
|
| |
|
|
|
|
|
|
|
|
|
| |
inline but HTML-escape it. Also, expand on the == 1 value
(HTML-escape an attachment) a bit so the output looks a little nicer.
Pipermail actually does a better job here, but we can't use it.
save_attachment(): Grows a filter_html option which says whether to
filter text/html parts or not. Default is 1, but if
ARCHIVE_HTML_SANITIZER == 2 above, we don't want to filter it through
the program.
|
| |
|
|
|
| |
new, meaning "leave it inline but HTML-escape it). The default is 1,
but leave the lynx filter in commented out as an example.
|
| |
|
|
| |
permanently records the Unix time the list was created.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Some time ago, someone complained about the pipermail not representing
proper charset in the Content-Type header. Here is a patch for the
latest CVS (2.1a).
With some changes by Barry, specifically to get the charset parameter
out of the Content-Type: header using email.Message's interface
instead of regexp searching.
Please double check this for me!
|
| |
|
|
| |
Kikuchi.
|
| |
|
|
| |
Kikuchi.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Specifically,
process(): Instead of a blanket discard of text/html parts, what we do
depends on the value for ARCHIVE_HTML_SANITIZER. Also, the "scrubbed"
message now includes the value of get_filename() if available.
save_attachment(): Several refinements including: all of a message's
attachments are stored in a subdirectory off
archives/private/mylist/attachments. This subdir is calculated based
on the SHA1 hash of the Message-ID:
We store the attachment in a file based on the name of the
get_filename() value, sanitize for nasty characters, absolute paths,
etc. The filename is uniquified within the message's attachments
subdir.
This function also knows about text/html and performs filtering when
ARCHIVE_HTML_SANITIZER is a program string. Note that currently, we
assume that this program will filter html into plain text, so we
change the attachment's suffix to .txt accordingly.
We don't need the attachments.pck file anymore.
|
| |
|
|
|
|
|
| |
containing a %(hostname)s interpolation string. This gets filled in
with the list's hostname, which is calculated from a reverse lookup in
VIRTUAL_HOSTS using self.host_name as the key. Failing that,
DEFAULT_URL_HOST is used.
|
| |
|
|
|
|
|
|
| |
hostname part interpolated from DEFAULT_URL_HOST (or the reverse
lookup of mlist.host_name in the VIRTUAL_HOSTS dictionary).
ARCHIVE_HTML_SANITIZER: A variable which describes what Pipermail
should do with text/html attachments.
|
| |
|
|
| |
attachments.pck file, so it gets the right permission too.
|
| |
|
|
|
|
|
| |
outers and scrubbing out the inner subparts.
save_attachment(): Set the umask to 002 so that the attachments don't
get saved o+w.
|
| | |
|
| |
|
|
|
|
|
| |
Subpart headers are suppressed, and the inter-part boundary string is
kludged to provide more useful information.
Also, text/html parts are now completely suppressed.
|
| |
|
|
|
|
| |
UnixMailbox. The main difference being we pass in the MailList
instance to the constructor, so all the magic of the message scrubber
can work.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
necessary so that when the mailbox needs to create a message instance,
it will use the factory, which gives the scrubber module a chance to
get rid of nasty stuff like attachments, and to flatten multipart
messages.
This is twisted and convoluted but it works. ;)
|
| |
|
|
|
|
|
|
|
| |
Pipermail. As this is a standard handler-style module (i.e. it has a
typical process() function), it could be used in a pipeline to scrub
messages headed to the list (i.e. a de-mimer).
Current drawback is that it's fairly hardcoded. Graft on a U/I
(easier said than done), and it could work.
|
| |
|
|
| |
equivalent to transaction aborts).
|
| |
|
|
|
|
|
|
|
| |
committed to Pipermail. As this is a standard handler-style module
(i.e. it has a typical process() function), it could be used in a
pipeline to scrub messages headed to the list (i.e. a de-mimer).
Current drawback is that it's fairly hardcoded. Graft on a U/I
(easier said than done), and it could work.
|
| | |
|
| |
|
|
| |
schemas.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
should just use the empty string if there's no real name.
|
| |
|
|
|
| |
unsubscribe_policy is true (i.e. admin must approve). This calls
DeleteMember() instead of ApprovedDeleteMember().
|
| |
|
|
| |
then don't add the List-* headers.
|
| |
|
|
|
|
| |
consistency and clarity (sorry translators!).
Also, add unsubscribe_policy configuration info.
|
| |
|
|
|
|
|
| |
text box should appear just before the send_goodbye_msg toggle.
Also, if ALLOW_RFC2369_OVERRIDES is true, present the boolean option
for disabling the headers.
|
| |
|
|
|
|
|
| |
that we can apply any list admin approval if necessary.
Also, the result message displayed depends on whether approval was
needed or not.
|
| | |
|
| |
|
|
| |
include_rfc2369_headers to the list object if they are missing.
|
| | |
|
| |
|
|
|
| |
the valid Pending types. (They're 1-tuples so that the assert is more
robust).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
send_goodbye_msg: Says whether to send the goodbye_msg to members
when they get unsubscribed.
unsubscribe_policy: What is this list's policy on unsubscribes?
(0 == unrestricted, 1 == admin approval)
include_rfc2369_headers: Should the RFC 2369 headers be included
in the messages? Defaults to yes (and requires site admin
complicity to disable).
DeleteMember(): New method which first checks unsubscribe_policy
before deleting the member address.
ApprovedDeleteMember(): Change userack default argument value to
None. Also, when userack is None, default it to the value of
self.send_goodbye_msg. Then of course, only send the unsubscribe ack
if userack is true.
|
| |
|
|
|
| |
ApprovedDeleteMember() so that the request can go through admin
approval if required.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
GetUnsubscriptionIds(): Return all the pending admin requests that are
UNSUBSCRIPTIONs.
HandleRequest(): Add support for UNSUBSCRIPTION type records.
HoldSubscription(): Use the list's internal name, not its real name in
the message to the admin.
HoldUnsubscription(), __handleunsubscription(): Support for holding
unsubscription requests, as well as handling their disposition, which
can be DEFER, DISCARD, REJECT, or UNSUBSCRIBE.
|
| |
|
|
| |
sent to the user when they're unsubscribed.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
is sent when a user gets unsubscribed.
DEFAULT_UNSUBSCRIBE_POLICY: Default flag for whether unsubscriptions
require admin approval or not.
ALLOW_RFC2369_OVERRIDES: Site admin switch which, if true, will allow
list owners to suppress RFC 2369 List-* headers.
UNSUBSCRIBE: New ListAdmin request enum.
|
| |
|
|
|
|
|
|
| |
their own policies. Specifically, added first_strip_reply_to which
will control whether any additional Reply-To: headers override or
extend an existing such field.
Also, we no longer save the old Reply-To: header on X-Reply-To:
|
| |
|
|
|
| |
rearranging of variables and added some section headers for clearer
organization.
|
| |
|
|
| |
description three times (two should be enough <wink>).
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
first_strip_reply_to.
|
| |
|
|
| |
short-circuit exit after processing password change.
|