| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
| |
appropriate for the web page we're spitting out. Take the unicode
name string and uncanonstr() it so that it'll either be a string
encoded in the charset of the page, or an ascii string containing html
&#XYZ; entities.
change_options(): Take the full name string received in the web form
and canonstr() it so that we get a unicode string.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
page, which possibly could contain &#XYZ; entities, and convert the
string to a Unicode string using the charset of the language provided
in the argument list. As a practical kludge, if the charset is
us-ascii, we'll use iso-8859-1 instead (which allows a larger number
of non-ASCII names in English lists).
uncanonstr(): The opposite (sorta) of canonstr(), this takes a Unicode
string and returns the encoded string in the charset of the provided
language. If a strict conversion fails, then 8-bit characters are
converted to their &#XYZ; entities.
|
| |
|
|
|
| |
to make it clear that the full name (not RealName) will be a Python
Unicode string if it contains non-ASCII characters.
|
| |
|
|
|
|
|
| |
all the strings aren't properly encoded. To make life as easy as
possible, make sure that all the items in the split sequence are 8-bit
strings, encoded if necessary in the charset of the language given in
the argument list.
|
| |
|
|
|
| |
translated. Closes SF bug #596361 by Tokio Kikuchi, albeit with a
slightly different patch.
|
| |
|
|
| |
Les Niles.
|
| |
|
|
| |
language keys, but we already have that information in LC_DESCRIPTIONS.
|
| |
|
|
|
|
| |
problems where stray directories are added to $prefix/templates. We
already know all the acceptable language codes from LC_DESCRIPTIONS so
use that instead. Closes SF bug #605557 reported by Emilio Delgado.
|
| |
|
|
|
|
| |
problems where stray directories are added to $prefix/templates. We
already know all the acceptable language codes from LC_DESCRIPTIONS so
use that instead. Closes SF bug #605557 reported by Emilio Delgado.
|
| |
|
|
|
| |
subscribe_policy is 2 or 3. Fixes bug #605933 reported by Ron
Jarrell.
|
| |
|
|
| |
already a member. Fixes bug #605933 reported by Ron Jarrell.
|
| |
|
|
| |
607469 by John Parise.
|
| |
|
|
|
| |
it's not there. It could be that all the interesting bits get
executed as a side effect of the execfile().
|
| |
|
|
|
|
| |
global opts are requested. This adds a __nonzero__() method to class
Global and tests for truth before doing the gmlist loop. Closes SF
patch #602084.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
mailman-developers. There's an inconsistent use of the MemberAdaptor
API -- authenticateMember() is never called. This change seems to
work just fine.
Also: whitespace normalization.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
that the digest may contain unparseable messages, e.g. with missing
start boundaries. Instead of crashing, such messages should simply be
ignored. If lax parsing can't grok it, it has a high likelihood of
being spam.
Specific changes here:
send_i18n_digests(): The end case is now that "msg is None", not
false, and if msg is the empty string, it was unparseable and we
should skip it.
|
| |
|
|
|
|
| |
the base class's .next() method will never raise them (it's factory
masks them). However, the end condition is now that "m is None"
instead of m being false.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that the digest may contain unparseable messages, e.g. with missing
start boundaries. Instead of crashing, such messages should simply be
ignored. If lax parsing can't grok it, it has a high likelihood of
being spam.
Specific changes here:
_safeparser(): New helper factory for PortableUnixMailbox, which
returns the empty string if a MessageParseError occurs. Note that ''
is used instead of None because the latter will stop the Mailbox's
default iterator (in Python 2.2).
Mailbox.__init__(): Use the _safeparser() function instead of
email.message_from_file().
scrubber(): We can use _safeparser() here and simply not scrub the
empty string return value.
|
| |
|
|
|
|
|
| |
anonymous_list option is moved to General->General list personality.
Also, in the Privacy section, a new "Recipient filter" subcategory is
added, into which is moved require_explicit_destination,
acceptable_aliases, and max_num_recipients.
|
| |
|
|
|
| |
In-Reply-To: information in archive mailto urls. Closes bug #443952
reported by Stig Hackvan.
|
| |
|
|
|
| |
#593454 in that typed_subpart_iterator must be converted to a sequence
#for subscripting.
|
| |
|
|
|
|
|
|
|
|
| |
of numeric ids. Initial idea and patch by Todd Vierling, fleshed out
by Barry.
Specific changes here:
checkperms(): Use MAILMAN_USER instead of MAILMAN_UID and getpwnam()
and getgrnam() where appropriate.
|
| |
|
|
|
|
|
|
|
|
| |
of numeric ids. Initial idea and patch by Todd Vierling, fleshed out
by Barry.
Specific changes here:
MAILMAN_UID -> MAILMAN_USER
MAILMAN_GID -> MAILMAN_GROUP
|
| |
|
|
| |
Moderate.
|
| |
|
|
| |
information. Closes SF bug #599112 by Peer Heinlein.
|
| |
|
|
| |
bug #597242.
|
| |
|
|
| |
#597407.
|
| |
|
|
|
| |
iteration, provide some more useful information in the logs/error
file.
|
| |
|
|
|
|
|
| |
a particular base64 attachment caused a binascii.Error. This makes
sure that before we try to web-safe-ify the html attachment, we decode
it first. But we need to update the Content-Transfer-Encoding: header
too.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Daniel Buchman.
|
| |
|
|
| |
Buchmann.
|
| |
|
|
|
|
|
|
| |
email.Iterators.body_line_iterator() will return a generator, which
isn't len()'able directly, so we need to convert it to a list first,
and then get the resulting len.
Closes SF bug #593454.
|
| |
|
|
|
| |
has already disposed of a message that the user is now trying to
confirm/cancel. Closes SF bug #594703 reported by Garey Mills.
|
| | |
|
| |
|
|
|
| |
bounce notification's charset to match the list's preferred language
charset. Closes SF bug #596055.
|
| |
|
|
|
|
| |
most of it. The real fix is simply to provide
bounce_you_are_disabled_warnings to the noticesleft in the .reset()
call.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the list too early! This scenario:
- a member starts bouncing and gets an initial bounce score, but isn't
yet disabled
- their mail starts working again for a while
- we start getting bounces for them again, but now their old info is
stale, so we reset it
The bug was that when we reset the info, we actually didn't reset
their bounce score, we reset their "notifications-left" value! That
means that if they accumulated more bounce scores and got disabled,
they'd immediate get removed from the list because they'd have no
bounce notifications left! Ouch.
The fix is to enshrine the reset semantics in default arguments for
_BounceInfo.reset(): default for score is 0, default for date is None
(meaning use Day 1), default for notices left is None, is basically a
placeholder.
registerBounce(): If we're going to reset stale bounce info, use the
defaults, except for noticesleft, which gets its value from
bounce_you_are_disabled_warnings.
Thanks to Danny Terweij for being the guinea pig. ;)
|
| |
|
|
|
|
| |
active language, which will be the sender's preferred language if they
are a member, or the list's preferred language otherwise. The
currently active language is available in the message metadata.
|
| | |
|
| |
|
|
| |
full name too.
|
| | |
|
| |
|
|
| |
there's no header (or footer).
|
| | |
|
| |
|
|
| |
concatenation, make sure there's a newline separating each part.
|