summaryrefslogtreecommitdiff
path: root/src/mailman
Commit message (Collapse)AuthorAgeFilesLines
* Fix coverage, deprecate, but run non-plugin (post|pre)_hooks.pluggable-componentsJ08nY2017-08-079-25/+94
|
* Ignore plugin started subprocesses in master main loop.J08nY2017-08-071-0/+7
|
* Add new logger which plugins can use.J08nY2017-08-073-0/+6
|
* Don't fail when plugins pre_hook or post_hook fails.J08nY2017-08-072-13/+36
| | | | | | | | - Catches all exceptions raised when running a plugins (pre|post) _hooks. If its pre_hook raises an exception, the plugin is disabled and removed, so its post_hook will not be run and its components will not be loaded. If its post_hook raises an exception we just continue and hope for the best.
* Make config.plugin_configs yield a dict with plugin names.J08nY2017-08-074-11/+13
| | | | - Allows to better loop over pluging configs and their names.
* Add optional external configuration to plugins.J08nY2017-08-074-1/+12
| | | | | - Adds an optional 'conriguration' option similar to the one in [mta] which plugins can use to load their specific configs from.
* Add REST-ability to plugins.J08nY2017-08-077-2/+322
| | | | | | | | | | | | | | | | | | | | - Adds the rest_object method to the IPlugin interface. This method is called by the REST api to route requests to the plugin's REST api. All attributes are proxied, so the object becomes a true REST object in the ObjectRouter hierarchy. For example see the RESTExample and ExamplePlugin classes in mailman.testing.plugin. The plugin might return None from this method, in which case all calls to it's REST api route will return 404 NotFound. - Adds new routes to the REST api. For version >= 3.1: - /3.1/plugins Returns a dictionary with plugin names as keys, and their configs as values. - /3.1/plugins/<plugin_name> Proxies everything to plugin's rest_object, if plugin with such name exists and provides a non-null rest_object, else NotFound.
* Pretty print dicts in dump_json.J08nY2017-08-071-0/+10
| | | | | | | | | | | - Makes dump_json documentation helper recursively print dicts with indentation. So for example {'name': {'a':1, 'b':2}, 'other': test} becomes: name: a: 1 b: 2 other: test
* Add per-plugin hooks, add docs about plugins.J08nY2017-08-0711-87/+250
| | | | | | | | | | | | | | | - Removes pre_hook, post_hook and ext_dir. With the latter being unused. Warns on startup if the hooks are present in config. - Adds IPlugin interface with pre_hook and post_hook methods. - Adds 'class' config parameter to plugins, which can be set to a class implementing the IPlugin interface, it will be initialized once on Mailman's startup, then before the DB setup the pre_hook will be run, after DB and other components the post_hook will be run. Plugin instances are stored in the config.plugins dict, with keys being their configuration section names.
* Add pluggable components.J08nY2017-08-0713-42/+132
| | | | | | | | | | | | | | | | | - Adds the notion of a 'plugin'. - A plugin has a package path and a flag specifying whether it's enabled or not. - Adds a find_pluggable_components function similar to the find_components one. This one dynamically searches not only the mailman package but all of plugins. - e.g. find_pluggable_components('rules', IRule) finds all IRule components in mailman.rules but also in example_plugin.rules for plugin names example_plugin. - Uses the find_pluggable_components function in place of find_components when searching for Rules, Handlers, Chains, EmailCommands, and Styles.
* Rename metadata key for clarityBarry Warsaw2017-08-0427-115/+355
|
* Set a timeout on the lock acquisitionBarry Warsaw2017-07-271-1/+2
|
* Ensure all holds/rejects have a reason.Mark Sapiro2017-07-2632-44/+618
|
* Convert to click for CLI optionsBarry Warsaw2017-07-2277-4095/+4206
|
* Python 3.4 no more!Barry Warsaw2017-07-131-0/+4
|
* Added a rule to discard messages with no valid sender address.Mark Sapiro2017-06-308-8/+117
|
* Fixed an AttributeError in subject prefixing.Mark Sapiro2017-06-303-2/+25
|
* Ignore syntactically invalid sender addresses.Mark Sapiro2017-06-303-2/+20
|
* IListManager.get() now accepts both List-IDs and FQDN list names.Barry Warsaw2017-06-246-43/+97
|
* Minor typo.Barry Warsaw2017-06-171-1/+1
|
* Move pipelines to their own package, instantiate them dynamically.pipelines-dynamical-instantiationJ08nY2017-06-175-79/+144
|
* Provide a better way to avoid instantiating some componentsBarry Warsaw2017-06-179-70/+214
|
* Did some reformatting and added tests.Mark Sapiro2017-06-152-15/+62
|
* Catch FileNotFoundError and PermissionError on html_to_plain_text_command.Mark Sapiro2017-06-133-1/+35
|
* Bump the code name.Barry Warsaw2017-06-091-1/+1
|
* Name and version bump for 3.2.Barry Warsaw2017-06-042-1/+5
|
* 3.1.0 final!Barry Warsaw2017-05-252-4/+4
|
* 3.1rc2Barry Warsaw2017-05-251-2/+2
|
* Merge branch 'header' into 'master'Barry Warsaw2017-05-252-11/+7
|\ | | | | | | | | Refactor Header object test to create the message without cheating. See merge request !283
| * Ensure the held message subject is a string.Mark Sapiro2017-05-241-1/+2
| |
| * Refactor Header object test to create the message without cheating.Mark Sapiro2017-05-241-10/+5
| |
* | Merge branch 'issue336' into 'master'Barry Warsaw2017-05-251-0/+25
|\ \ | | | | | | | | | | | | | | | | | | Fix the bogus migration on Template.password Closes #336 See merge request !282
| * | Fix the bogus migration on Template.passwordAurélien Bompard2017-05-241-0/+25
| |/ | | | | | | Fixes #336
* | Merge branch 'doc-UTF8' into 'master'Barry Warsaw2017-05-252-0/+127
|\ \ | | | | | | | | | | | | Document Unicode usage in Mailman 3 REST API and email addresses. See merge request !274
| * | Fixup ref spacing.Stephen J. Turnbull2017-05-241-1/+1
| | |
| * | Document Unicode usage in Mailman 3 REST API and email addresses.Stephen J. Turnbull2017-05-242-0/+127
| | |
* | | Minor reformatting of NEWSBarry Warsaw2017-05-241-10/+6
| |/ |/|
* | Merge branch 'pr337' into 'master'Barry Warsaw2017-05-245-17/+18
|\ \ | | | | | | | | | | | | | | | | | | Fix the template name of the welcome message Closes #337 See merge request !280
| * | Fix the template name of the welcome message.Barry Warsaw2017-05-245-17/+18
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We did not previously complete the renaming of the templates. Rename: * user:ack:welcome -> list:user:notice:welcome * user:ack:goodbye -> list:user:notice:goodbye The new names are what are actually used in send_welcome_message() and send_goodbye_message() so the old names were actually never used. NOTE: If you added welcome or goodbye templates through REST from git head, the old names will not be used. Given that this wasn't a feature in 3.0, and the above use case is very unlikely, I've decided not to do a migration. If anybody is affected, the changes can be made manually in withlist. Closes: #337
* / Account for msg['subject'] possibly being a Header instance.Mark Sapiro2017-05-242-0/+33
|/
* 3.1rc1Barry Warsaw2017-05-233-6/+13
|
* Merge branch 'self_links' into 'master'Barry Warsaw2017-05-233-1/+19
|\ | | | | | | | | | | | | Add self_links to the system configuration resources Closes #335 See merge request !271
| * Add self_links to the system configuration resources.Barry Warsaw2017-05-233-1/+19
| | | | | | | | Closes #335
* | Merge branch 'pr265' into 'master'Barry Warsaw2017-05-231-2/+5
|\ \ | | | | | | | | | | | | PR #265 with minor fixes See merge request !270
| * | Fix minor spelling.Barry Warsaw2017-05-231-1/+1
| | |
| * | Adding documentation on how to enter multi-line header_checks.Simon Liebold2017-05-231-2/+5
| | |
* | | Add support for regex based postfix transport maps and relay_domains.Abhilash Raj2017-05-235-66/+198
| |/ |/|
* | Content Filtering: Ported a number of fixes from the 2.1 branch.Mark Sapiro2017-05-238-19/+495
|/
* Remove obsolete instructionsTerri Oda2017-05-222-178/+16
|
* Merge branch 'master' into 'master'Barry Warsaw2017-05-221-1/+1
|\ | | | | | | | | Point to Python 3 pickle URL See merge request !268