summaryrefslogtreecommitdiff
path: root/src/mailman/rules
Commit message (Collapse)AuthorAgeFilesLines
...
* | - Rename the model attributes.Barry Warsaw2012-04-082-5/+5
|/ | | | - news_moderation -> newsgroup_moderation
* * Header check specifications in the `mailman.cfg` file have changed quiteBarry Warsaw2012-04-062-86/+105
| | | | | | | | | | | | | | | | | | | | bit. The previous `[spam.header.foo]` sections have been removed. Instead, there's a new `[antispam]` section that contains a `header_checks` variable. This variable takes multiple lines of `Header: regexp` values, one per line. There is also a new `jump_chain` variable which names the chain to jump to should any of the header checks (including the list-specific, and programmatically added ones) match. * Fixed a typo when returning the configuration file's header match checks. (LP: #953497) Also: - Remove an unused method. - Improve test coverage for mailman/app/bounces.py - 100% test coverage for mailman/chains/headers.py - Various other minor code cleanup. - Fixed the 'any' rule, which was checking a bogus metadata dictionary key.
* * A mailing list's *moderator password* is no longer stored in the clear; itBarry Warsaw2012-04-043-218/+444
| | | | | | | | | | | is hashed with the currently selected scheme. Also: - Simplify and rewrite the approved.rst doctest. Now just document the good path, and only describe its functionality using the Approved: header, which is the recommended header. - Greatly expand the unittests for the approved rule.
* * Fixed a UnicodeError with non-ascii message bodies in the `approved` rule,Barry Warsaw2012-04-044-1/+66
|\ | | | | | | | | | | given by Mark Sapiro. (LP: #949924) (with some minor stylistic fixes by Barry)
| * * Added a unit test for rules/approved.pyMark Sapiro2012-03-183-0/+74
| | | | | | | | * Renamed rules/docs/approve.py to approved.py for consistency.
| * Fixed a unicode decode error on messages with non-ascii text/plain parts.Mark Sapiro2012-03-151-1/+3
|/
* Schema change. After discussion at Pycon, we decided to change "real_name" toBarry Warsaw2012-03-151-2/+2
| | | | | | | | | | | "display_name" across the board. * `IMailingList.real_name` -> `IMailingList.display_name` * `IUser.real_name` -> `IUser.display_name` * `IAddress.real_name` -> `IAddress.display_name` * Schema changes: - real_name -> display_name (mailinglist, user, address)
* Do not taunt Happy Python 2.6 Fun Ball.Barry Warsaw2012-03-142-3/+3
| | | | | Clean up Python 2.7-isms and deprecations that break the tests suite on Python 2.6.
* copybumpBarry Warsaw2012-01-0113-13/+13
|
* Finally, all doctests are named .rstBarry Warsaw2011-09-2314-0/+0
|
* Major terminology shift:Barry Warsaw2011-06-011-4/+4
| | | | | | | | | | | | | | | | | * Queue runners are now called just 'Runners' since several of them don't manage queue directories. * Ban the term 'qrunner' too. * The master queue runner watcher should now just be called the 'master' or the 'master runner'. * bin/qrunner -> bin/runner * mailman.qrunner log file -> mailman.runner * master-qrunner.lck -> master.lck * master-qrunner.pid -> master.pid Also: * Remove some obsolete files * Begin the .txt -> .rst renaming
* Refactor .subscribe() from IAddress to IMailingList.Barry Warsaw2011-04-161-1/+1
|
* Split member and nonmember moderation.Barry Warsaw2011-01-026-106/+170
| | | | | | | | | | | | | | | | * member-moderation happens at the same place in the built-in chain that the previously named moderation rule happens. nonmember-moderation happens after all the other normal moderation rules. * Handle unsubscribed nonmember posts. Other changes: * Message.senders now filters out Nones and empty strings. * Various test cleanups and simplifications. * More `address` -> `email` fixes. * Give Link class a useful repr. * Fix a potential UnboundLocalError. * Various other small changes.
* Happy New Year.Barry Warsaw2011-01-0113-13/+13
|
* Fairly significant change to the way member and nonmember moderation occurs.Barry Warsaw2010-12-293-67/+88
| | | | | | | | | | | | | | | | | | | | | | | | | Now, nonmembers are represented by a separate roster of IMembers, the latter which has grown a `moderation_action` enum. When that action is `defer`, then the normal processing rules apply. Anything else and the `moderation` chain is jumped to for a shortcut to moderation (which may include immediate acceptance). TODO: handle unregistered nonmembers. Details: * The member-moderation rule is renamed to just moderation, and handles both members and nonmembers (though the latter must currently be registered). * The moderation rule is moved up in the builtin chain. It is now checked after `approved`, `emergency`, and `loop`, but before the normal moderation checks. This means that nonmember postings will be (by default) held much earlier. * IMember.is_moderated is removed. * IMember.moderation_action is added. * IMailingList.default_member_moderation is removed. * IMailingList.default_member_action and IMailingList.default_nonmember_action are added. * MemberRole.nonmember is added.
* This is part 1 of the merge of Jimmy Bergman's branchBarry Warsaw2010-12-283-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lp:~jimmy-sigint/mailman/restapi_additional_attributes Ostensibly, this adds support for a few additional attributes through the REST API: * default_member_moderation * generic_nonmember_action * member_moderation_action * reply_goes_to_list * send_welcome_msg * welcome_msg However, I had never previously fleshed out the conversion of default_member_moderation and member_moderation_action into the MM3 way of things. That is now done. Non-member moderation still needs to be done. Specific changes: * mailman.chains.base.Chain no longer self registers * The built-in chain gets a new link for checking 'member-moderation'. If this rule matches, it jumps to the 'member-moderation' chain, which checks member_moderation_action and returns a link that jumps to the appropriate terminal chain. * Chain initialization is done by the same auto-detection as rules, handlers, etc. The one tricky thing is that abstract base classes such as Chain and TerminalChainBase can't be instantiated. For now, there's an ugly special case to skip these. * default_member_moderation is now exposed in the IMailingList interface. * Member.is_moderated gets set in the constructor from the mailing list's default_member_moderation. * The 'moderation' rule is renamed 'member-moderation'. TODO: * Work out non-member moderation * Add member_moderation_action to IMailingList * Double check tests for reply_goes_to_list, send_welcome_msg, and welcome_msg
* * Allow X-Approved and X-Approve headers, equivalent to Approved andBarry Warsaw2010-09-202-9/+56
| | | | Approve. LP: #557750
* More documentation updates.Barry Warsaw2010-09-1514-67/+84
|
* So long X-BeenThere, and thanks for all the fish.Barry Warsaw2010-02-162-13/+13
|
* Happy New Year.Barry Warsaw2010-01-0113-13/+13
|
* Factor out most of the i18n subsystem and convert to using the flufl.i18nBarry Warsaw2009-11-1513-13/+13
| | | | package.
* Cleanup.Barry Warsaw2009-11-0412-12/+0
|
* As before, replace config.db.requests and config.db.pendings with utilities.Barry Warsaw2009-08-261-2/+4
|
* Replace the message_store instance on the database with an IMessageStoreBarry Warsaw2009-08-261-1/+5
| | | | utility.
* Remove the user_manager attribute from config.db and expose it as anBarry Warsaw2009-08-261-1/+4
| | | | IUserManager utility.
* Test updates and repair.xoBarry Warsaw2009-08-2110-10/+20
|
* De-u-literal-ify our doctests.Barry Warsaw2009-07-1813-41/+54
|
* Add argparse 'cause I think this might end up being cool.Barry Warsaw2009-03-291-53/+0
| | | | | | | | Refactor the finding of components so that it's much easier to find and register the ones that come with Mailman by default. Move all the old cmd_*.py commands into the attic. These will eventually be ported to the new framework.
* Last few conversions to pkg_resources instead of listdir'ing the file systemBarry Warsaw2009-03-291-3/+2
| | | | directly.
* Move the Action and NewsModeration enums into their own interface files.Barry Warsaw2009-03-252-4/+4
|
* Get rid of the mailman.rules entry point.Barry Warsaw2009-03-091-3/+3
|
* Convert content filter and acceptable aliases away from pickle types.Barry Warsaw2009-03-032-8/+17
| | | | | | | * Add an adapter from mailing lists to acceptable alias set. Use this instead of the old acceptable alias interface, which is not removed. * Add contentfilter table * Add a bunch of missing docstrings
* acceptable_aliases are no longer a pickle.Barry Warsaw2009-02-232-13/+50
|
* Move mailman.Message to mailman.email.Message. Rename Message.get_sender() toBarry Warsaw2009-02-091-2/+2
| | | | | | | | | Message.sender (property) and Message.get_senders() to Message.senders (another property). The semantics of .sender is slightly different too; it no longer consults config.mailman.use_envelope_sender. Add absolute_import and unicode_literals to Utils.py, and clean up a few imports.
* Push the source directory into a 'src' subdirectory so that zc.buildout worksBarry Warsaw2009-01-2528-0/+2169
correctly regardless of how it's used.