summaryrefslogtreecommitdiff
path: root/Mailman/Cgi (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Patches to support duplicate suppression for explicit recipients,bwarsaw2002-03-051-7/+12
| | | | | | | | | | written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN. Specifically, OPTCOLUMNS: Let's parameterize this. membership_options(): Add a column for the nodupes field.
* subscription_prompt(), subscription_confirm(): Remove the passwordbwarsaw2002-03-041-12/+19
| | | | | from the subscription confirmation form. The potential for mischief seems high.
* process_form(): i18n fixes. The privacy alert message should be sentbwarsaw2002-02-281-6/+13
| | | | | | to the user in his/her own language, but as this may be different than the list's preferred language, we have to wrap the message creation in a try/finally which sets and restores the list's language.
* add_error_message(): Removed as a duplicate of Document.addError().bwarsaw2002-02-281-30/+32
| | | | | | | | | | | Change all calls of add_error_message() to doc.addError(). main(): Fix the error reporting when no email address is given. Also, rework the error reporting for when the login page's unsub or remind buttons are used. Specifically, when rosters are public, we should provide error messages when the given address is not a member, but when rosters are private, lie about the confirmation message or password reminder.
* Document.addError()'s tag argument's default value is now "Error: " sobwarsaw2002-02-281-10/+7
| | | | change the call sites accordingly.
* get_valid_value(): Removed. This has all been moved into thebwarsaw2002-02-271-116/+4
| | | | | | | | | | | | | | | Mailman/Gui/GUIBase.py module. get_item_gui_value(): The gui component API has changed; use getValue() instead of GetValue(). change_options(): We can really simplify a lot of this method because the actual changing of the properties, value verification, and special overrides are now all handled in the gui components themselves. We now need only call out to the gui.handleForm() method. Eventually, the membership management page should use the same mechanism.
* add_error_message(): Converted to Document.addError().bwarsaw2002-02-231-26/+12
|
* show_post_requests(): Be sure to cgi.escape() the header text we'rebwarsaw2002-02-231-3/+3
| | | | | | | displaying so that nasty HTML can't sneak in. Also, set the readonly attribute to true when creating the Message Headers and Message Excerpt text boxes. This avoids the misperception that you can edit the message before it's approved.
* 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.
* main(): Don't check for `request_login' in the cgi form data, becausebwarsaw2002-01-221-1/+1
| | | | that key is obsolete.
* main(), change_options(): Don't check for `request_login' in the cgibwarsaw2002-01-221-13/+4
| | | | | form data, because that key is obsolete. In change_options(), removed Scott's way old comment since I think it's no longer applicable.
* Fixed a bug in delivery status disable/enable globally. Specifically,bwarsaw2002-01-171-17/+16
| | | | | | | | | | | | lists_of_member(): Change the signature to take a MailList object as the first argument, not a string hostname. This allows lists_of_member() to filter out the current mailing list, which should update its attribute the "normal" way. main(): Use the new lists_of_member() signature where appropriate. global_options(): The global_enable argument will contain the value for the setDeliveryStatus() call. I.e. it won't be a boolean flag.
* show_pending_subs(), show_pending_unsubs(): Sort lexigraphically thebwarsaw2002-01-121-0/+14
| | | | email addresses requesting subscription or unsubscription.
* main(): Fixed two buglets. First in the "if sender:" block, thebwarsaw2002-01-081-2/+5
| | | | | | | | | | expansion of d['description'] referenced a local `esender' which, due to code re-org wasn't defined. Define esender so as to avoid cross-site scripting exploit. Second, it wasn't correct to omit the form and submit button any time there were ?details=... Fix this so that each stanza can decide whether to add the form or not.
* process_form(): Handle MembershipIsBanned exceptions.bwarsaw2002-01-061-2/+6
|
* show_pending_subs(): Slight rewording of a label. Sorry translators!bwarsaw2002-01-061-12/+34
| | | | | | | | | | Also, in pending subscriptions listing, add a checkbox which will add the address to the ban_list. show_helds_overview(): Add a checkbox which will add the address to the ban_list. process_form(): Handle adding the address to the ban_list.
* get_item_gui_value(): Filter out volatile attributes when usingbwarsaw2002-01-041-2/+3
| | | | getattr(), since they won't exist.
* main(): When short-circuiting the return (because there's no morebwarsaw2002-01-031-9/+30
| | | | | | | | pending results), be sure we still save the list! show_helds_overview(), process_form(): When messages are being held by a moderated member, give the list admin a chance to clear the moderate bit.
* show_results(): Don't allow thru-the-web deletion of the site list.bwarsaw2002-01-021-1/+3
|
* main(): Refactor calculation of QUERY_STRING values.bwarsaw2002-01-021-12/+56
| | | | | | | | | | membership_options(): Refactor calculation of adminurl. Also, add a hack to hide or display the table legend (normally hidden) using QUERY_STRING extensions. This may not yet play nicely with all the member chunking extensions. Add Dan Mick idea to include an indication of the reason for `nomail'. Use an abbreviation, described in the legend.
* process_form(): Make sure all the possible form item values are in thebwarsaw2002-01-021-3/+4
| | | | assertion. This fixes subscription approvals.
* main(): The last fix wasn't correct; it should have been fixed inbwarsaw2001-12-291-6/+1
| | | | OldStyleMemberships.py. Backing it out.
* Massive rewrite, for which I'm too tired to detail (yeah, I'll regretbwarsaw2001-12-291-90/+370
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this five years from now ;). In brief, We now organize held postings by sender address and this "summary" is what's presented when .../mailman/admindb/listname is visited. The pending subs and unsubs don't change, but the preamble is shorted (with links to more detailed instructions). For each group of held messages, you can click on one link to see the details of the all the messages sent by a single address, or you can click on a different link to view the details of just a single message. A third link lets you view the details of all the held messages, just like the old admindb page used to give you. The details page is just like the old admindb in form and function, except that ADMINDB_PAGE_TEXT_LIMIT now works ;) and there are links back to the summary page. One additional neat hack is that on the summary page, there's an option to add an email address to one of the auto sender filter lists (viewable in the admin/privacy/sender screen). This is only visible if the address isn't already on one of the four filter lists. Where this should be a boon is if you've got a bunch of messages being held that are coming from the same address, and they all appear to be spam. You can discard them all in one fell swoop (no click-'n'-scroll necessary!), and add them to the auto-discard list, so you never have to worry about them again. Note that if what you wanted to do was add a regexp to say the auto-discard list, you'd have to first add this address, then go to the admin/privacy/sender page and edit the address into a regexp filter. Easily done, while reducing the complexity of the admindb summary page, which already pushes the edge of "too busy".
* main(): Small bug fix for when the admin has checked the unsub box andbwarsaw2001-12-291-1/+6
| | | | | accidently changed an option for the same user. We just ignore the NotAMemberError that can get raised.
* Added support for the RE_ENABLE confirmation (i.e. thru-the-webbwarsaw2001-12-271-1/+115
| | | | | | | | re-enabling of a disabled membership). Specifically, reenable_cancel(), reenable_confirm(), reenable_prompt(): New functions to prompt for, cancel (i.e. defer) and confirm thru-the-web re-enabling of a disabled membership.
* Make it easier for gui components to implement specializations of thebwarsaw2001-12-271-13/+16
| | | | | | | | | | category form data processing. The intention is to eventually push most of the special casing out of this script, where it's simply too hard to maintain. Specifically, get_item_gui_value(): If the gui component has a GetValue() method, call it to get the current value of the attribute. This lets us implement the seconds<->days mapping in the Bounce.py gui component.
* main(), global_options(): Use getDeliveryStatus() andbwarsaw2001-12-191-8/+29
| | | | | setDeliveryStatus() to change the delivery status -- instead of the member options. When disabling, do it BYUSER.
* membership_options(): Implement user-selected disabled delivery. Usebwarsaw2001-12-191-9/+25
| | | | | | | | | | getDeliveryStatus() instead of getMemberOption(). Fix the FIXME code which was doing a direct key search in mlist.members. This code is less efficient but plays nice with the MemberAdaptor API. change_options(): Handle the <user>_nomail option through the setDeliveryStatus() method instead of the setMemberOption() method. Disable BYADMIN.
* show_post_requests(): cgi.escape() the full text of the messagebwarsaw2001-11-301-1/+2
| | | | | excerpt so that it can't sneak in table breaking HTML or evil Javascript. Fixes SF bug #486340. Patch and report by Greg Lindahl.
* main(): Move the setting of the language to up above the login page,bwarsaw2001-11-301-8/+19
| | | | | | | | so that the selected language is propagated from the listinfo page to the options login page. Also, grab the default language setting from the form field. loginpage(): Add a language selection widget.
* list_listinfo(): Code reorg.bwarsaw2001-11-301-1/+3
|
* Forward port security patch from Mailman 2.0.8:bwarsaw2001-11-3010-29/+44
| | | | | | | | | | Fixes to prevent cross-site scripting exploits. See http://www.cert.org/advisories/CA-2000-02.html Reported by zeno@cgisecurity.com Fix is to cgi.escape() any strings regurgitated from the url back to the browser in the html response.
* get_item_gui_value(), get_valid_value(): Added EmailListEx widgetbwarsaw2001-11-211-3/+6
| | | | | | which is just like EmailList except that it also allows "extended email addresses", really just regular expressions, which must start with a ^ (otherwise it's taken as a literal address).
* process_request(): Utils.get_site_email()'s second argument should nobwarsaw2001-11-201-1/+1
| | | | longer include the leading dash.
* show_post_requests(): We have to translate the `reason' we get out ofbwarsaw2001-11-071-1/+1
| | | | | the admin database, otherwise it won't be in the list's preferred language.
* process_request(): Add an html comment to a string that otherwisebwarsaw2001-11-061-2/+7
| | | | | would be a duplicate of one in bin/newlist. Web version and email version should have different entries in the message catalog.
* subscription_prompt(), unsubscription_prompt(), heldmsg_prompt(): Thebwarsaw2001-11-061-3/+38
| | | | | | | | | | results strings should be displayed in the language that the subscribee has requested. Also, tailor the response message based on whether the moderators have to approve a confirmed request or not. Reported by Daniel Buchmann. subscription_confirm(): Need a `listname' local variable for _() string interpolation.
* main(): When using private rosters, and attempting to remind, unsub,bwarsaw2001-11-061-22/+32
| | | | | | | or login, be sure we test for membership with isMember() before we call the methods that require the user to be a member. Organize the code such that membership isn't leaked due to the result messages, and that mischievous attempts are logged.
* ChangeHTML(): Must make sure the language-specific directory for thebwarsaw2001-11-051-4/+12
| | | | list exists before we try to write the template file.
* password_input(): Daniel Buchmann rightly points out that the textbwarsaw2001-11-051-4/+5
| | | | | explanation needs to be written to reflect the fact that password inputs are not on the general optinos page anymore.
* listinfo_overview(), admin_overview(): Simplify the test for virtualbwarsaw2001-11-022-6/+2
| | | | | host matching. We simply need to find the lowercased hostname in the web_page_url to find a match.
* show_results(), membership_options(): Two missed translationbwarsaw2001-10-271-6/+5
| | | | | | markings. Found by Szilard Vizi. password_inputs(): We don't need the <a name=...> bit anymore.
* get_item_gui_description(): Fixed i18n string. Found by Tokiobwarsaw2001-10-261-1/+1
| | | | Kikuchi.
* main(): template_data: handle_opts.html is gone. Found by Tokiobwarsaw2001-10-261-1/+0
| | | | Kikuchi.
* Get rid of useless import (reported by Dan Mick).bwarsaw2001-10-251-1/+0
|
* show_requests(): To be consistent with pendingsubs, pendingunsubsbwarsaw2001-10-211-1/+1
| | | | should just use the empty string if there's no real name.
* main(): Call DeleteMember() when the unsubscribe button was hit sobwarsaw2001-10-211-7/+17
| | | | | | | that we can apply any list admin approval if necessary. Also, the result message displayed depends on whether approval was needed or not.
* show_requests(): Include a pending unsubscribes section if necessary.bwarsaw2001-10-211-3/+31
|
* option_help(): If there is no elaboration, don't display thebwarsaw2001-10-201-4/+2
| | | | description three times (two should be enough <wink>).
* change_options(): A few code cleanups.bwarsaw2001-10-201-3/+1
|