summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* addError(): New method added to class Document, which is essentially abwarsaw2002-02-231-5/+18
| | | | | | | | | | | | replacement for the function in the admin.py module. This makes it much easier for gui component HandleForm() methods to add an error or warning to the admin page. TextArea.__init__(): Add a `readonly' argument, which translates to the TEXTAREA tag getting a READONLY attribute. We'll use this to turn the header and body excerpt text boxes in the admindb pages to read-only (avoiding the common misperception that you can edit the message before it's approved).
* __setstate__(): When unpickling Message instances, check to make surebwarsaw2002-02-231-0/+6
| | | | | | | | | | | | | | they have a _charset attribute, adding a default one if not. This should fix a problem I think Dan Mick had, which I believe is caused by a Message object being pickled w/ version 0.96 of the email package, and unpickled by 0.97/1.1 of the email package. Why doesn't this go into email.Message.Message? Because I don't want to clutter its code up with something that should both be transient and assumes that Message is pickled. Mailman seems more responsible for the pickle consistency (if every Python class that grew an attribute had to have such schema migration code, we'd be up sh*ts creek).
* Remove `pythonlib' from SUBDIRS. We're getting rid of thebwarsaw2002-02-231-2/+2
| | | | | Mailman/pythonlib subdirectory in favor of an alternate location when/if necessary.
* Bump copyright years.bwarsaw2002-02-231-1/+1
|
* Use the mailbox module from the Python standard library, instead ofbwarsaw2002-02-231-1/+1
| | | | | | our Mailman/pythonlib version. We don't use the extra hack in our version anyway, AFAICT (i.e. the addition of a seek() method which just deferred to the underlying file object).
* We can now get rid of the special admin director and just treat thatbwarsaw2002-02-141-11/+2
| | | | suffix like all the others.
* Bump the copyright years.bwarsaw2002-02-142-2/+2
|
* clear(): Fix the file names given to _zapfile().bwarsaw2002-02-141-2/+2
|
* makealiases(): Remove the special case for the `admin' script; it'sbwarsaw2002-02-141-2/+1
| | | | treated like all the other scripts now.
* Copy the bounces script to the admin script. This is for backwardsbwarsaw2002-02-141-0/+1
| | | | compatibility.
* VALID_COMMANDS: To make life easier, we'll include `admin' as a validbwarsaw2002-02-141-0/+1
| | | | | mail program. The installation procedure will copy the bounces script to the admin script. This is for backwards compatibility.
* Updates based on my experiences in getting Exim to work w/ Mailmanbwarsaw2002-02-121-136/+94
| | | | 2.1.
* Sigh. Import order is now essential for command line scripts so thatbwarsaw2002-02-121-3/+5
| | | | | we path-hack before we try to import any email module. We'll need to do an audit of all the command line scripts.
* A slightly cleaner way to do the freshening of MailList objects.bwarsaw2002-02-121-7/+6
| | | | | | | | | run(): After once through the loop, look at the freshen flag and if true, clear the cache. Thus all subsequent MailList objects will get updated state, but we'll gain the performance benefits of the cache for each iteration the the big loop. _open_list(): Return this function to its original state.
* __init__(): Default the self._freshen attribute to zero.bwarsaw2002-02-121-2/+13
| | | | | _open_list(): If we've pulled the list object from the cache, then freshen the state by re-Load()-ing it.
* __init__(): Set self._freshen so that the MailList cache in the basebwarsaw2002-02-121-9/+7
| | | | | | | | class knows to reload the state when pulling the object from the cache. Hmm, why do we even have a cache now? _dispose(): Don't do the `verp' key calculation here; it's done earlier and better in the ToOutgoing.py handler.
* process(): Set the `verp' key in the metadata here, based on post_idbwarsaw2002-02-121-1/+13
| | | | | | | and VERP_DELIVERY_INTERVAL. We used to do this in OutgoingRunner, but that was inconvenient due to the latter never freshing the state of MailList objects (that's fixed, but this is still a better place to set this key).
* run_main(): Because the site-packages path hacking no longer happensbwarsaw2002-02-121-6/+2
| | | | | | | | in Defaults.py, we need to arrange for this script to import paths.py to pick up the correct site-packages prefixed sys.path. Because we do this, we can delete the sys.path.insert() call, which was redundant.
* Move the path hacking addition of the site-packages directory to herebwarsaw2002-02-121-2/+13
| | | | | | | | | from Defaults.py.in. The problem is that even for Python 2.2, we need site-packages to appear /before/ the standard library so that we can pick up the newer version of the email package. Defaults.py/mm_cfg.py is usually imported too late in the game to work, but paths.py is about right (although we'll have to audit the command line scripts to make sure they import paths.py before they import email.*).
* Move the path hacking addition of the site-packages directory to thebwarsaw2002-02-121-10/+1
| | | | | | | | | paths.py.in file. The problem is that even for Python 2.2, we need site-packages to appear /before/ the standard library so that we can pick up the newer version of the email package. Defaults.py/mm_cfg.py is usually imported to late in the game to work, but paths.py is about right (although we'll have to audit the command line scripts to make sure they import paths.py before they import email.*).
* Czech updates from Dan Ohnesorg.bwarsaw2002-02-1218-566/+817
|
* main(): First, set the global language to the list's preferredbwarsaw2002-02-112-13/+21
| | | | | | | | language for the email message that's sent out. Then do the translation and UserNotification generation, then reset the language context and send the message. Patch by Ben Gertzfield, modified by Barry.
* SendExplanation(), main(): First, set the global language to thebwarsaw2002-02-111-10/+22
| | | | | | | | list's preferred language for the email message that's sent out. Then do the translation and UserNotification generation, then reset the language context and send the message. Patch by Ben Gertzfield, modified by Barry.
* create(): When creating the UserNotification message object, pass inbwarsaw2002-02-111-2/+2
| | | | | | | the language that the message should be in. This allows us to get the character set and header encodings right. Patch by Ben Gertzfield.
* process(), hold_for_approval(), do_discard(): When creating thebwarsaw2002-02-114-10/+7
| | | | | | | | UserNotification message object, pass in the language that the message should be in. This allows us to get the character set and header encodings right. Patch by Ben Gertzfield.
* Update bundled email package to 0.97 for support of multibytebwarsaw2002-02-112-0/+0
| | | | character sets.
* process_request(): When creating the UserNotification message object,bwarsaw2002-02-111-2/+2
| | | | | | | pass in the language that the message should be in. This allows us to get the character set and header encodings right. Patch by Ben Gertzfield.
* InitVars(), ArchiveMail(): The start of some cleanups flagged bybwarsaw2002-02-111-4/+0
| | | | Pychecker. Removed some unused local variables.
* ParseMailCommands(): When creating the UserNotification messagebwarsaw2002-02-111-10/+4
| | | | | | | object, pass in the language that the message should be in. This allows us to get the character set and header encodings right. Patch by Ben Gertzfield, with modifications by Barry.
* __handlepost(), HoldSubscription(): When creating the UserNotificationbwarsaw2002-02-111-11/+20
| | | | | | | | | | | message object, pass in the language that the message should be in. This allows us to get the character set and header encodings right. Note that in the former method, we try to set the language to the forwarding address, if it is a member of the list. If not, the list's preferred language will be used. Patch by Ben Gertzfield, with modifications by Barry.
* SendSubscribeAck(), SendUnsubscribeAck(), MailUserPassword(): Whenbwarsaw2002-02-111-4/+5
| | | | | | | | creating the UserNotification message object, pass in the language that the message should be in. This allows us to get the character set and header encodings right. Patch by Ben Gertzfield.
* __sendAdminBounceNotice(), sendNextNotification(), BounceMessage():bwarsaw2002-02-111-5/+7
| | | | | | | | When creating the UserNotification message object, pass in the language that the message should be in. This allows us to get the character set and header encodings right. Patch by Ben Gertzfield.
* AddMember(), ApprovedAddMember(), ApprovedDeleteMember(): Whenbwarsaw2002-02-111-6/+3
| | | | | | | | creating the UserNotification message object, pass in the language that the message should be in. This allows us to get the character set and header encodings right. Patch by Ben Gertzfield.
* UserNotification.__init__(): Add a `lang' optional argument so thatbwarsaw2002-02-111-3/+10
| | | | | | | charset information can be propagated into the headers, if necessary. Use the new mimelib/email package's Charset and Header classes. Patch by Ben Gertzfield. Requires email 0.97.
* Massive simplification to avoid making all the BerkeleyDB callsbwarsaw2002-02-091-155/+62
| | | | | | | | | | | | | | | | | | | | | ourselves. Given the incompatible state of BDB libraries on most modern Linux distros, and given the sorry state of affairs in Python's BDB wrappers, this is the only sensible solution. Essentially, I've kept all the plain text (data/aliases and data/virtual-mailman) update code, and then we just call postalias and postmap on the files to get the .db counterparts regenerated. This should be foolproof since only Postfix itself needs to use consistent libraries -- attempting to match Postfix and Python would be a nightmare. I don't believe we're opening ourselves up to any vulnerabilities by using os.system() in this case. Also: all functions which are not meant to be part of the public MTA interface are now prefixed by a single underscore. I'm too tired to give detailed changes...
* POSTFIX_ALIAS_CMD, POSTFIX_MAP_CMD: External commands for convertingbwarsaw2002-02-091-0/+7
| | | | | | the plain text aliases and virtual-mailman files to their .db counterparts. This will be /much/ less fragile than direct BerkeleyDB hacking. See accompanying change to Postfix.py.
* test_remove_member_clears(): New test to make sure that removing abwarsaw2002-02-091-1/+45
| | | | | | | member clears the bounce and delivery status information for a member. test_bounce_info(): Make sure that the case invariants are upheld.
* setBounceInfo(): Dan Mick recognized that set/getBounceInfo() weren'tbwarsaw2002-02-091-0/+1
| | | | | operating case insensitively w.r.t. the member key. Coerce the member argument to lower case before it's used.
* Latest Spanish updates from Juan Carlos Rey Anaya.bwarsaw2002-02-082-633/+352
|
* Updated norwegian binary catalog.avalon2002-02-061-0/+0
|
* Updated norwegian catalog.avalon2002-02-061-44/+67
|
* French catalogs updates.wilane2002-02-062-76/+128
|
* GetStandardReplacements(): Be sure to pass the lang argument to thebwarsaw2002-02-051-2/+2
| | | | | | GetLangSelectBox() call for the <mm-list-langs> replacement, otherwise a user's option page will always reset the user's language to the list's preferred language.
* removeMember(): Untested patch to clean up bounce_info andbwarsaw2002-02-051-2/+1
| | | | | delivery_status attributes when deleting a member. Don't call setBounceInfo() directly.
* sendNextNotification(): Remove the call to setBounceInfo() sincebwarsaw2002-02-051-1/+0
| | | | | | removeMember() -- which is eventually called by ApprovedDeleteMember() should to any necessary cleanup of the bounce info. Found by Dan Mick.
* Japanese updates from Tokio Kikuchibwarsaw2002-02-0510-327/+354
|
* Spanish updates from Juan Carlos Rey Anayabwarsaw2002-02-055-986/+1846
|
* Newly generated mailman.pot template file. Merged w/ languagebwarsaw2002-02-031-0/+15
| | | | | | | | catalogs and .mo files generated. Spanish and German translators take note: there were a bunch of duplicate entries which I had to manually delete before msgfmt would complete successfully. Please verify!
* Newly generated mailman.pot template file. Merged w/ languagebwarsaw2002-02-0319-7420/+9740
| | | | | | | | catalogs and .mo files generated. Spanish and German translators take note: there were a bunch of duplicate entries which I had to manually delete before msgfmt would complete successfully. Please verify!
* update from Dmitry Fedoseevmss2002-02-031-21/+26
|