summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* GetConfigInfo(): For the `owner' option, add a link to thebwarsaw2001-08-171-13/+14
| | | | | | | | | | general#passwords section, and to the `moderator' option where appropriate. Likewise for `moderator' option. Also, dont_respond_to_post_requests => respond_to_post_requests and switch the polarity of the No/Yes radio.
* Convert lots of split-line strings to triple-quoted strings. Yes,bwarsaw2001-08-171-21/+18
| | | | | | | this is ugly, but it makes the job much easier for translators of certain languages. Also say "list moderator" instead of "list administrator".
* option_help(): Simplify the error message when the VARHELP variable isbwarsaw2001-08-171-13/+12
| | | | | | | invalid. password_inputs(): Add a <a name...> tag here so we can create a <a href="general#passwords"> link directly to this section.
* Style nit.bwarsaw2001-08-171-1/+1
|
* DATA_FILE_VERSION: Bump to 35 to pick up thebwarsaw2001-08-171-1/+1
| | | | dont_respond_to_post_requests => respond_to_post_requests change.
* UpdateOldVars(): dont_respond_to_post_requests => respond_to_post_requestsbwarsaw2001-08-171-0/+7
|
* InitVars(): In order to make the General options consistently displaybwarsaw2001-08-171-3/+3
| | | | | | | | | | | binary radio options as "No" then "Yes", we had to change the polarity of dont_respond_to_post_requests. Rename the option respond_to_post_requests and use versions to update the attribute and value. AddMember(): In HoldSubscription() call, the local variable `name' holds the user's full name, not `fullname'. Also say "moderator" instead of "administrator".
* Convert lots of split-line strings to triple-quoted strings. Yes,bwarsaw2001-08-171-53/+52
| | | | | | | this is ugly, but it makes the job much easier for translators of certain languages. Also, consistancy for strings which have similar messages.
* subscription_confirm(): We have to convert the 'digests' value to anbwarsaw2001-08-161-3/+8
| | | | integer since that's what MemberAdaptor eventually wants.
* nopass.txt template is no longer necessary, since MailUserPassword()bwarsaw2001-08-168-59/+0
| | | | no longer sends out notifications if the user's password is `false'.
* __repr__(): Useful for debugging.bwarsaw2001-08-161-0/+13
|
* MakeCookie(): If the secret isn't a string, raise MMBadUserError.bwarsaw2001-08-161-2/+2
| | | | | __checkone(): Likewise, if the secret isn't a string, return 0 (i.e. no the user isn't authenticated).
* confirm(): If we're purging this cookie, we should remove its entry inbwarsaw2001-08-161-0/+5
| | | | | | | | the evictions dictionary too. _save(): Go through and delete any evictions keys which don't appear in the pending dictionary (i.e. we're cleaning up after ourselves due to the above bug).
* getMemberOption(): Whether the user is a digest member or not is notbwarsaw2001-08-161-2/+6
| | | | | | | | | | | | | kept as a bitfield value in user_options, even though there's an mm_cfg.Digests `flag'. So special case asking for this option by checking the `where' value returned by __get_cp_member(). addNewMember(): Similarly, there's no point in setting user_options to mm_cfg.Digests if the member wants to receive digests, since the state of that flag is kept elsewhere. setMemberOption(): More of the same; we can always return from the "if flag == Digests" clause without touching user_options.
* ProcessSubscribeCmd(): Use keyword arguments for all parameters to thebwarsaw2001-08-161-1/+3
| | | | | | UserDesc constructor. Previously, we were assigning the password to the fullname, and the digest to the password, so users were ending up with a password of the integer 0. Very bogus.
* MailUserPassword(): Rip out the checks for isMember(user) andbwarsaw2001-08-161-28/+32
| | | | | | | | | | | | | | | | getMemberPassword(user). First, we assert that the user is a member because there should be no way to get here if that's not the case. Second, it is a nasty bug if the user does not have a valid password, but one that the list administrator really can do little about. Instead, if the user is found to have a `false' password, we simply assign them a new one, which is fine because they're asking for their password now, so we'll just ship them the new one. This means we no longer need templates/*/nopass.txt, soon to be deleted. It also means that we won't raise MMBadUserError here, which is fine because the caller never checked for that exception anyway. ;)
* Add a new and digustingly long entry describing how to rename abwarsaw2001-08-161-0/+185
| | | | mailing list.
* MarshalSwitchboard._ext_read(): If the .db file is of version 2, justbwarsaw2001-08-151-0/+3
| | | | | delete the `filebase' key. That should be enough to update it to version 3.
* update_qfiles(): MM2.0 stores all its qfiles right under the qfiles/bwarsaw2001-08-151-0/+23
| | | | | | | | directory. To "update" any unprocessed message from a MM2.0 system to MM2.1, it should be sufficient to simply move them to qfiles/in and rename them so that they have the received time prepended to the basename (as expected by Switchboard's ...split('+') format).
* Urg. Should have been S98mailman.inbwarsaw2001-08-152-5/+5
|
* main(): Added the -s/--stale-lock-cleanup switch so that if mailmanctl finds abwarsaw2001-08-151-12/+87
| | | | | | | | | | | | stale lock (by matching hostname and pid) it will delete the lock files before trying to reclaim them. Also added -q/--quiet to suppress status messages (but not error messages, which always go to stderr). sigterm_handler(): We need to catch SIGTERM since that's what init will send us when changing run levels. SIGTERM just kills all the sub-qrunners with SIGINT (i.e. no restart).
* We now have to generate misc/S98mailman from misc/S98mailman.inbwarsaw2001-08-152-5/+5
|
* Added instructions for installing the Unix boot script misc/S98mailmanbwarsaw2001-08-151-2/+12
|
* Added J.D. Bronsonbwarsaw2001-08-153-3/+4
|
* S99mailman should have been S98mailmanbwarsaw2001-08-152-22/+1
| | | | .cvsignore: ignore S98mailman generated from S98mailman.in
* boot script templatebwarsaw2001-08-150-0/+0
|
* intermediatebwarsaw2001-08-151-0/+22
|
* intermediatebwarsaw2001-08-151-0/+22
|
* process(): Do not munge the Reply-To: field if reply_goes_to_list isbwarsaw2001-08-141-10/+15
| | | | | | `explicit' but the reply_to_address is invalid. Also, include some notes about better RFC 2369 support...
* Add import of Language module.bwarsaw2001-08-141-0/+1
|
* GetConfigCategory(): Make sure the spaces between the words arebwarsaw2001-08-144-4/+4
| | | | non-breaking. Also, consistency in capitalization.
* UI elements for the "languages" admin category.bwarsaw2001-08-140-0/+0
|
* intermediatebwarsaw2001-08-141-0/+71
|
* GetConfigInfo(): Move preferred_language out of here and into thebwarsaw2001-08-141-20/+2
| | | | | | | | Language gui module. We'll group it with the available_languages option. Also, fix the category description so that it isn't specified as two adjacent strings, but instead one TQS.
* Support the ability to specify the initial list of available languagesbwarsaw2001-08-141-1/+34
| | | | | | | | | | when creating the mailing list. A checkbox array is displayed that contains all the server-supported languages, with the DEFAULT_SERVER_LANGUAGE checked by default. List preferred language still needs to be chosen after-the-fact through the admin pages (it defaults to DEFAULT_SERVER_LANGUAGE). process_request(): Make sure that the list name isn't the empty string!
* import types => from types import *bwarsaw2001-08-141-41/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure most tables have an explicit width of 100%, otherwise vertical Checkboxes cause the table to be squashed. show_results(): Split the "Configuration Categories" unordered list into two columns. Still not perfect, but better than having 11 members in one column on the left. "Edit the HTML for the public list pages" => "Edit the public HTML pages" get_item_gui_value(): Handle the new Checkbox widget. get_valid_value(): If widget type is Email, only attempt to validate the value if it is not the empty string. This fixes SF bug #219571, which prevented the reply_to_address field from being cleared. Also, teach this about the Checkbox widget type. Make sure that the value is a list. It'll be a scalar if exactly one of the checkboxes is selected, but we always treat it as a list. change_options(): When calling get_valid_value(), catch any EmailAddressErrors that can occur due to hostile or otherwise bad email addresses in the reply_to_address field. Print an error message in that case. add_error_message(): Change the way the `tag' argument is defaulted, so we can translate the default value.
* de-string-module-ificationbwarsaw2001-08-141-10/+9
| | | | NewVars(): Add available_languages attribute if missing.
* Add CheckBoxArray, a new class which implements an array of checkbwarsaw2001-08-141-16/+46
| | | | | | | | boxes (i.e. multiple selections). Refactor RadioButtonArray class into new base class WidgetArray which contains most of the logic. RadioButtonArray and CheckBoxArray inherit from WidgetArray. map(None, ...) => zip(...)
* DATA_FILE_VERSION: Bump to 34 to pick up the new available_languagesbwarsaw2001-08-141-1/+1
| | | | attribute.
* InitTempVars(): Removed the _ready attribute, as it really isn'tbwarsaw2001-08-141-16/+10
| | | | | | | | | | | | | | | | | | | | | | | | | used anywhere anymore. InitVars(): Added the available_languages attribute which will hold the list of language codes supported by this mailing list. Create(): Take an extra optional argument `langs' which holds a list of language codes that the mailing list should initially support. Default this to the list's preferred language (which in turn defaults to DEFAULT_SERVER_LANGUAGE). Save(): I don't think we need IsListInitialized() any more. Load(): Removed the _ready attribute. IsListInitialized(): Removed. GetAvailableLanguages(): Don't key the list of available languages off the subdirectories in lists/<mylist>. The tiered-template lookup only requires those directories to exist if there are site customizations of the templates. Instead, return the value of self.available_languages, but with DEFAULT_SERVER_LANGUAGE forced as a member.
* ADMIN_CATEGORIES: Add the 'language' category just after 'general'.bwarsaw2001-08-141-1/+3
| | | | | | | | This will hold the preferred and available language options. Checkbox: New widget type. Add the Hungarian/hu language (I'm assuming it's charset is iso-8859-1).
* _badchars(): Fixed a typo in the last change; the `/' character needsbwarsaw2001-08-141-1/+1
| | | | to be inside the character-set.
* addlist(): Don't rely on the brilliant new feature in Python 2.1, wheretwouters2001-08-111-1/+1
| | | | the argument to time.ctime() defaults to 'the current time'.
* Recognize and test the low-hanging fruit of the MM2.0.x undetectablebwarsaw2001-08-041-1/+10
| | | | bounce messages I've collected.
* It seems that all SMTP32 mailers have anbwarsaw2001-08-041-4/+22
| | | | | | | X-Mailer: <SMTP32 v.... header. Also, different prefix sentences before the address have been spotted in the wild.
* *** empty log message ***bwarsaw2001-08-040-0/+0
|
* intermediatebwarsaw2001-08-041-0/+121
|
* Another example of the SMTP32 mailerbwarsaw2001-08-040-0/+0
|
* intermediatebwarsaw2001-08-041-0/+92
|
* Another DSN example.bwarsaw2001-08-040-0/+0
|