| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Closes #42
|
| | |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
| |
Also, use the better way to set the LMTP ident.
|
| | |
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
| |
| |
| |
| |
| |
| | |
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.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
Rewrite the smtpd based servers using aiosmtpd, although it still needs
a bit of work. Requires aiosmtpd 1.0a3 which is not yet released.
|
| | | |
|
| | | |
|
| |/
|
|
|
|
|
|
| |
* events
* notices
* handlers
Also, be sure to do only one `leave` command per email.
|
| | |
|
| |
|
|
|
| |
The new template system is introduced for API 3.1. See
``src/mailman/rest/docs/templates.rst`` for details.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Closes #224
|
| |
|
|
|
|
|
| |
This suppresses all errors in the file. Use `noqa`, although pep8
doesn't honor this for all errors.
There may be a plugin which helps.
|
| | |
|
| |
|
|
| |
Fix the last few violations of the import rules.
|
| |
|
|
| |
Fix lots of import order errors discovered by the new plugin.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
* Update some comments.
* Slightly rewrite a conditional test.
* Coding style fixes.
* Add a convenience to get_queue_message().
* Add NEWS.
|
| |
|
|
|
| |
This refactors the setting of a user's preferred address to the first in
their list of linked addresses.
|
| |
|
|
|
| |
* Python 3-ify super() calls.
* Remove a bunch of obsolete exception classes.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Use `yield from` wherever appropriate.
* Use SA's .one_or_none() where appropriate.
- Fix a bug in MailingList.pass_extensions.
- Use ValueError in other places for consistency.
- Remove unreached/nonsense code.
- Simplify the SubscriptionService.find_member() and .find_members()
implementations.
- Boost coverage.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
hex representations of a UUID, not the int representation.
Also:
* Some general code cleanup.
* Fix issue 185 (REST server crash when subscribing a user without a
preferred address).
|
| |
|
|
|
|
|
|
| |
* Boost coverage.
* Don't report coverage on the test modules.
* In one test, when acquiring the lock, set a timeout. Hopefully this will
eliminate the occasional test deadlock.
* Fix a buglet in wrap()
|
| |
|
|
|
| |
tests suite (for that, use tox).
* Use resource_filename() to locate the top mailman package.
|
| | |
|
| |
|
|
|
|
|
| |
SQLAlchemy is generally pretty chatty and usually not necessary to debug.
Set use_poll=True in asyncore.loop() which improves Python 3.5 compatibility.
We were getting OSErrors in stop() when using select under Python 3.5.
|
| | |
|
| |\ |
|
| | |\ |
|
| | | | |
|