summaryrefslogtreecommitdiff
path: root/src/mailman/rest
Commit message (Collapse)AuthorAgeFilesLines
* Fix coverage, deprecate, but run non-plugin (post|pre)_hooks.pluggable-componentsJ08nY2017-08-072-0/+4
|
* Add new logger which plugins can use.J08nY2017-08-071-0/+1
|
* Make config.plugin_configs yield a dict with plugin names.J08nY2017-08-071-6/+7
| | | | - Allows to better loop over pluging configs and their names.
* Add optional external configuration to plugins.J08nY2017-08-073-1/+4
| | | | | - 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-074-0/+246
| | | | | | | | | | | | | | | | | | | | - 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.
* Add per-plugin hooks, add docs about plugins.J08nY2017-08-072-5/+1
| | | | | | | | | | | | | | | - 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-071-0/+1
| | | | | | | | | | | | | | | | | - 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-043-0/+3
|
* Convert to click for CLI optionsBarry Warsaw2017-07-222-5/+5
|
* Merge branch 'doc-UTF8' into 'master'Barry Warsaw2017-05-251-0/+4
|\ | | | | | | | | 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-241-0/+4
| |
* | Fix the template name of the welcome message.Barry Warsaw2017-05-242-7/+7
|/ | | | | | | | | | | | | | | | | 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
* Add self_links to the system configuration resources.Barry Warsaw2017-05-233-1/+19
| | | | Closes #335
* Update welcome template with correct password reset instructionsBritt Gresham2017-05-221-2/+2
| | | | | | | | Before this commit the welcome template included older instructions on how to reset a users password. This commit updates the documentation to reflect the new way of resetting a users password by clicking on a link when logging in.
* Add an explanatory comment. See GL#324Barry Warsaw2017-05-091-0/+4
|
* Fix two problems and close #260Barry Warsaw2017-04-222-3/+19
|
* Updated rest/lists.py to handle list name error exceptions and addedMark Sapiro2017-02-192-1/+31
| | | | | | tests for for the exceptions. Enhanced the InvalidListNameError exception to return the invalid name.
* Fixed broken tests.Mark Sapiro2017-02-192-0/+2
|
* Experimental Gunicorn support.Barry Warsaw2017-02-101-60/+0
|
* Gunicorn REST support.Barry Warsaw2017-02-101-12/+20
| | | | Closes #287
* Update WSGI functions to take necessary argumentsEric Searcy2017-02-102-12/+10
| | | | | | | | | | | | | * gunicorn.py needs to initialize mailman once, not per request. * make_application takes environment and response arguments, which it passes to the callable WSGI application (in this case, the instance of the RootedAPI class). (wsgiref does something similar, but wsgi_server only needs a copy of the application, and it passes the same two arguments to that object internally. Note, in my opinion wsgiapp.py's make_application has a misleading name, since it doesn't behave like a normal make_application (it's not invoked by a WSGI server). I've left it as-is, though, since it is public.
* Add a very experimental gunicorn REST runner.Barry Warsaw2017-02-101-0/+50
|
* Remove the dependency on httplib2.Barry Warsaw2017-02-0614-441/+429
| | | | Closes #42
* Extensive reorganizationBarry Warsaw2017-02-042-22/+79
|
* Sort the addresses for predictable results.Barry Warsaw2017-02-021-1/+2
|
* Create users sequentially for uid stability.Barry Warsaw2017-01-291-0/+2
|
* Enforce a stricter coding style.Barry Warsaw2017-01-263-4/+4
|
* Style fixesSimon Hanna2017-01-112-10/+8
|
* Decode RFC2047 encoded Subject when accessing held messagesSimon Hanna2017-01-112-0/+38
|
* Bump copyright years.Barry Warsaw2017-01-0439-39/+39
|
* Implement caching suffix list with in-tree fallback.Barry Warsaw2017-01-012-0/+2
| | | | | | | | Also: * Change doctest cleanups to be an ExitStack. * Added [dmarc]cache_lifetime setting. * Cleanup pass through dmarc-mitigation.rst. * Be sure the cached org domain file is cleaned up when the world is reset.
* Fix some fallout from the previous commit.Barry Warsaw2016-12-312-8/+25
|
* Simplified the various list settings and remamed several things.Mark Sapiro2016-12-263-22/+13
|
* Merged from master.Mark Sapiro2016-12-0920-20/+49
|\
| * Use `atpublic` for @public instead of internal copy.Barry Warsaw2016-11-2919-19/+19
| |
| * Starting to clean up the branch.Barry Warsaw2016-11-281-11/+4
| |
| * Fix Flake8 errorsAurélien Bompard2016-11-281-8/+7
| |
| * Learn to encode Messages and Header instances to JSONAurélien Bompard2016-11-282-1/+38
| |
* | Merge branch 'dmarc' of gitlab.com:msapiro/mailman into dmarcMark Sapiro2016-11-265-5/+43
|\ \ | |/ |/|
| * Added new list DMARC attributes to rest/listconf.py and updated tests.Mark Sapiro2016-11-013-5/+36
| |
| * Merge gitlab.com:mailman/mailman into dmarcMark Sapiro2016-11-012-0/+10
| |\
| * | DMARC mitigations, part 1a.Mark Sapiro2016-10-312-0/+7
| | |
* | | Merge branch 'hide-system-disabled-archivers' into 'master' Barry Warsaw2016-11-263-11/+7
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't show the disabled archivers in the REST API Previously, system-disabled archivers were shown in the REST API. As a result it was possible to enable them without a validation error, but they would stay disabled on the next API GET call (their actual activation status depends on the list-specific *and* the system-wide status). Because one can't add a configuration overlay to the running REST server in testing mode, the prototype archiver was disabled in the testing configuration. This is where most of the changes in this commit come from. See merge request !87
| * | | Fix testsAurélien Bompard2016-08-181-1/+1
| | | |
| * | | Don't show the disabled archivers in the REST APIAurélien Bompard2016-08-183-12/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Because one can't add a configuration overlay to the running REST server in testing mode, the prototype archiver was disabled in the testing configuration. This is where most of the changes in this commit come from.
* | | | Fix QA.Barry Warsaw2016-11-251-1/+0
| | | |
* | | | Add NEWS and a little bit of cleanup.Barry Warsaw2016-11-252-7/+8
| | | |
* | | | Rename test email and use resource filename instead of __file__.Abhilash Raj2016-11-253-4/+6
| | | |
* | | | Return 'defective message' for a bad held messageAbhilash Raj2016-11-253-1/+34
| | | | | | | | | | | | | | | | | | | | If a message can't be parsed by Python due to bad structure, don't raise an error but return a generic 'this message is defective' string instead.