summaryrefslogtreecommitdiff
path: root/Mailman/ListAdmin.py
Commit message (Collapse)AuthorAgeFilesLines
...
* Latest round of jcrey's I18N patches. Specifically,bwarsaw2000-12-261-10/+21
| | | | | | | | | | | | | | Mark various strings as translatable. HoldSubscription(): New parameter `lang' which is the user's preferred language. This is stored in the pending database. Messages to the administrator are sent in the list's preferred language, while messages back to the user are sent in the user's preferred language. __handlesubscription(): Pull the user's preferred language from the held record and pass that to __refuse(). __refuse(): Pass the selected language to maketext().
* First integration patch for Juan Carlos's translatable string changesbwarsaw2000-12-071-7/+8
|
* __handlepost(): When reconstituting the message from the requestbwarsaw2000-11-081-0/+6
| | | | | | | | | database, zap the `filebase' attribute and let it be recalculated when the message is enqueued. This fixes duplication bugs when an approved message has delivery problems, and get re-enqueued continually with a different filebase. This should close SF bug #117015.
* __handlepost(): If the message has been approved, and is beingbwarsaw2000-10-101-2/+10
| | | | | | | | | forwarded, we need to craft two completely separate messages for each path through the system. They can't share msgdata state or message text or the first will simply disappear. Hacky way of doing this is to rewind the file pointer and re-instantiate a new message object. Closes SF bug #116311.
* HoldSubscription(): GetAbsoluteScriptURL() => GetScriptURL(..., absolute=1)bwarsaw2000-08-011-1/+1
|
* __handlepost(): Ricardo Kustner noticed that the forward feature wasbwarsaw2000-07-061-2/+2
| | | | | broken. Set the message recips to a list to fix this. Fixes SF Bug #108215.
* HoldMessage(): Make a copy of the msgdata dictionary so thatbwarsaw2000-07-051-0/+5
| | | | | subsequent changes won't be reflected in the request database. This fixes Ricardo Kustner's perplexing problem.
* __handlesubscription(): When subscribing the addr, ApprovedAddMember()bwarsaw2000-06-281-0/+3
| | | | | | will end up calling SaveRequestsDb() which closes the database. The hack is to re-open the database so that the del in HandleRequest() doesn't fail.
* Use the constants defined in Defaults.py.inbwarsaw2000-06-201-21/+24
| | | | | | | | | HandleRequest(): Default comment, preserve, forward, addr arguments to None. Instead of raising LostHeldMessage() here, return LOST constant so the pending database can maintain consistency. Also, enqueue the message immediately instead of trying to delivery it here. This improves performance by pushing delivery off to qrunner, and it also helps to maintain pending database consistency.
* HandleRequest(): Takes three new additional arguments, `preserve',bwarsaw2000-06-151-24/+60
| | | | | | | | | | | | | | | | | | | | | `forward', and `addr' which are passed in from admindb.py. These are only useful for held postings, and are only passed on to __handlepost(). preserve is a flag that says whether the held message should be copied to the `spam' directory or not. forward is a flag which says that the message should be forwarded on to an addition email address, which is contained in the addr parameter. Both most be set for forwarding to occur. Finally, HandleRequest() only deletes the database entry if the status of the sub-method is true. This is to support the new `deferred' flag for held postings. __handlepost(): Takes the three new parameters as described above. Uses shutil to do the `preserve' copy, and HandlerAPI.DeliverToUser() to do the forwarding (after inserting a `Resent-To' header).
* __handlesubscription(): Change the sense of the `value' parameter tobwarsaw2000-06-141-2/+2
| | | | match the change in admindb.py (`subscribe' comes before `refuse').
* __handlepost(): Always send out the rejection notice; don'tbwarsaw2000-06-051-3/+2
| | | | conditionalize on dont_respond_to_post_requests.
* Convert all uses of mlist.LogMsg() to the new syslog() interface.bwarsaw2000-06-021-6/+6
|
* HoldMessage(): Use the repr() of the message, not the str() so as tobwarsaw2000-05-311-1/+1
| | | | preserve the unixfrom line.
* __handlepost(): Write a log entry when a held message is enqueuedbwarsaw2000-05-311-0/+2
| | | | after approval.
* __handlepost(): Instead of trying to deliver approved messagesbwarsaw2000-05-311-2/+4
| | | | | | immediately with DeliverToList(), enqueue the message for later delivery by qrunner. This vastly improves the responsiveness of the web interface for huge lists.
* __handlepost(): Fixed typo in call to DeliverToList() caught by Ronbwarsaw2000-05-301-1/+1
| | | | Jarrell.
* __handlepost(): No need to explicitly enqueue the message, sincebwarsaw2000-05-221-3/+2
| | | | | DeliverToList() will now do this automatically if any pipeline module fails.
* Elaborations related to the new delivery stuff. Specifically,bwarsaw2000-05-081-5/+14
| | | | | | | | | | | | HoldMessage(): Take an optional msgdata dictionary, which gets stored along with all the other information related to this held message in the held message database. __handlepost(): Add some backwards compatibility code for pre 2.0b3 held message databases now that the held record can be 6 elements long (this should really not be a length-dependent tuple). Also, use HandlerAPI.DeliverToList() to send approved messages out, and check the return value to see if the message needs to be enqueued.
* __getmsgids(): sort the list of matching ids before returning them.bwarsaw2000-04-131-0/+1
|
* __handlepost(): Sender's address (which is taken from the incominghmeland2000-04-081-1/+1
| | | | | message) might contain '%' chars, quote them before they reach MailList.LogMsg().
* Update the copyright lines to include the years 1999 & 2000.bwarsaw2000-03-211-1/+1
|
* Convert message delivery to pipeline architecture by usingbwarsaw1999-11-241-13/+14
| | | | | HandlerAPI.DeliverToUser() for fast track delivery of the notification messages.
* Held posts are now stored in a separate file in the file system,bwarsaw1999-11-151-13/+43
| | | | | | | | | | | | | | | | | instead of marshalled into the requests.db file. The file name will always be $PREFIX/data/heldmsg-<listname>-<id> where <id> is the request id integer value. HoldMessage(): Store the message text in the heldmsg file as described above. In the requests.db marshal, we just include the filename in the last slot. Although this is redundant information, it makes calculating the file name a little easier (hmm, maybe we should remove this anyway). __handlepost(): Watch out for the message file being removed, and raise a LostHeldMessage in that situation. In any case, once the message is dispatched, be sure to unlink the message file (transforming expected exceptions into LostHeldMessage).
* InitTempVars(): Set self.__filename to other than None ifbwarsaw1999-11-121-2/+5
| | | | | | self.fullpath() returns a non-false value __opendb(): assert that self.__filename is true
* Don't use anydbm as the database format, since it can't be made tobwarsaw1999-11-111-68/+44
| | | | | work reliably and cross platform. Instead the request.db file is a marshal'd dictionary; a format that seems to work well for us!
* __opendb(): add a simple, first line of defense assert against out ofbwarsaw1999-11-111-0/+2
| | | | sync databases.
* Massively restructured, the key improvement is that request data arebwarsaw1999-11-101-155/+208
| | | | | | | | no longer kept with the MailList object, but instead in a separate lists/<listname>/request.db file. This means that the potentially huge amounts of data assosicated with held messages need not be loaded in unless administrative requests are actually being changed (added to, handled).
* HandlePostRequest(): Quote %'s in the Subject: header too!bwarsaw1999-04-091-8/+10
|
* HandlePostRequest(): Need to "strquote" (e.g. replace % with %%) inbwarsaw1999-03-311-6/+12
| | | | string read from Web text box.
* I should have broken this up into 2 checkins because it implements onecotton1998-11-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fix and one addition. Sorry, i realized that too late. This change adds another list conifg variable "admin_notify_mchanges", which is a boolean 0 or 1 and specifies whether or not the list admin gets notifications of subscriptions and unsubscriptions. The functions MailList.DeleteMember and MailList.ApprovedAddMember trigger the delivery if it is turned on for the list or passed in as an optional argument. This way, it is the duty of programs/code that do mass subscriptions/unsubscriptions where this notification may not be appropriate to specify that in the call to .DeleteMember or .ApprovedAddMember. There are 2 new templates, adminsubscribeack.txt and adminunsubscribeack.txt which are used in sending these notifications. Defaults.py.in has a variable "DEFAULT_ADMIN_NOTIFY_MCHANGES" which is set to 0 so that old lists will act the same by default, and the data version is up'ed to 12. versions.py sets the variable if it's not already there for a list. The config info for the admin cgi program for this new variable is set right after the variable for immediate notifications. The second change is a fix where ApprovedAddMember was calling a "self.Save()", which made mass subscribe situiations really far too slow. I removed the .Save() from there and added it to the more outer level code in the following places: bin/convert_list Mailman/ListAdmin.py Mailman/MailCommandHandler.py Mailman/Cgi/admin.py Note that since AddMember can trigger a call to ApprovedAddMember, all the places where AddMember is called needed a .Save() added as well. I need to add a call to .Save() for Mailman/Cgi/subscribe.py as well and will do that in a moment. scott
* Removed import of marshal. It isn't used here.bwarsaw1998-07-231-1/+0
|
* NumRequestsPending(): Changed name from RequestsPending(), reflectingklm1998-07-171-1/+1
| | | | the fact that it returns a number, and not a list of requests...
* RefuseRequest(): Convert to maketext()bwarsaw1998-07-061-29/+13
|
* Convert all module names to their new names.bwarsaw1998-06-191-45/+32
| | | | | SUBSCRIPTION_AUTH_TEXT, POSTING_AUTH_TEXT moved into templates/*.txt files
* Whoops, I forgot to check these in. They're changed to handleviega1998-06-031-2/+2
| | | | | relative paths, mainly GetScriptURL->the appropriate replacement. Now I'm done w/ checkins, and I'm going to test the current snapshot.
* Removed RCS crudbwarsaw1998-05-261-8/+10
| | | | | | | | | | | | (SUBSCRIPTION_AUTH_TEXT, POSTING_AUTH_TEXT): Some small, but important formatting changes. The wrapping/filling algorithm says not to fill any lines that begin with whitespace, so for the two embedded lists that shouldn't be filled, start the lines with a couple of spaces. RefuseRequest(): Call SendTextToUser() with raw=1 so that the text of the original message will not be wrapped/filled. Some of the text should probably be wrapped/filled but that's too hard to separate out right now.
* Fixed a typo in the zipcode.viega1998-05-261-2/+2
|
* Added copyright notices to all source files where I am legally entitled to ↵viega1998-05-251-1/+18
| | | | | | | do so. Added a copy of the GNU GPL. Added information about mailman-users in README, and reworded some text in there (made the credits less verbose... perhaps they should move to a credits file?)
* Preparing to package a distribution - add a module docstring andmailman1998-04-091-0/+4
| | | | __version__ info.
* Collapsed a message log line.mailman1998-04-091-3/+2
|
* Log info about rejected and discarded posts in vette lot file.mailman1998-04-081-3/+16
|
* Provide for untitled messages in acknowledgement notices.mailman1998-03-261-2/+6
|
* Added implementation of 'discard' admin options to requestmailman1998-03-241-3/+8
| | | | | dispositions - for spam, it doesn't send email to poster, just discards their posting.
* Refined admin vette logging a bit.mailman1998-03-201-7/+7
|
* Take additional info about the message subject in the 'post'mailman1998-03-181-17/+22
| | | | | | | | | | .AddRequest(), for admin notices. Stop inhibiting sending of request refusal for moderated messages! (I think this was confused with sending of request queuing, which should be suppressed, and now is in the ../scripts/post script.) Refined various notice's text a bit, including adding more info.
* Implement admin_immed_notify, where list admins can choose to havemailman1998-03-131-1/+45
| | | | | | | | | | notices sent whenever a new admin request (vetted subscriptions or list postings) arrives, in addition to daily notice. Repair what is logged (was using list. instead of self.). Relocate message body texts to "constants" just after imports, at the least so they don't screw up emacs tracking of indentation levels.
* ListAdmin.AddRequest(): Log all posting and membership requestsklm1998-03-081-1/+10
| | | | | | | | | | pending approval in 'vette' log file (using new MailList.LogMsg() method). ListAdmin.HandleAddMemberRequest(): Handle (new) detection of subscription approval of already subscribed members (eg, when duplicate subscription requests were blanket approved in a single subscription vetting).
* Initial revisionmailman1998-02-211-0/+132