summaryrefslogtreecommitdiff
path: root/src/mailman/interfaces
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'pluggable-workflows' into pluginpluginJ08nY2017-08-072-36/+68
|\
| * Remove [Un]SubscriptionConfirmationNeeded events, send msg in workflows.J08nY2017-08-071-27/+0
| |
| * Migrate the [un]subscription_policy attribute.J08nY2017-08-071-4/+2
| | | | | | | | | | | | | | | | | | - This is quite a huge commit, since it changes the type of the MailingList.subscription_policy and unsubscription_policy attributes to the new names of pluggable workflows, in all occurences. - Also adds a migration to migrate the attributes to the new types. - Adds tests for the migration.
| * Save the complete workflow stack, not only last step.J08nY2017-08-071-4/+4
| |
| * Create mailman.workflows package. Move base Workflow there.J08nY2017-08-071-1/+62
| | | | | | | | | | - Also introduce IWorkflow, ISubscriptionWorkflow, IUnsubscriptionWorkflow.
* | Merge branch 'pluggable-components' into pluginJ08nY2017-08-071-0/+38
|\ \
| * | Add REST-ability to plugins.J08nY2017-08-071-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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-071-0/+32
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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 description attribute to IStyle, expose it in REST.J08nY2017-08-071-0/+3
|/
* Rename metadata key for clarityBarry Warsaw2017-08-042-5/+14
|
* Convert to click for CLI optionsBarry Warsaw2017-07-221-17/+15
|
* IListManager.get() now accepts both List-IDs and FQDN list names.Barry Warsaw2017-06-241-8/+22
|
* Moved InvalidListNameError class definition to mailman.interfaces.mailinglist.Mark Sapiro2017-02-201-0/+10
| | | | | Added more documentation on config.mailman.listname_chars. Made a couple of minor tweaks.
* Handle PEP 475 fallout.Barry Warsaw2017-01-281-0/+13
| | | | | | | | | | | | | | | Closes #255 As of Python 3.5, PEP 475 gets in our way. Runners with long time.sleep()'s in their _snooze() method (e.g. the retry runner) will have their system call implemented time.sleep() automatically retried at the C layer. The only reliable way to prevent this is to raise an exception in the signal handler. The standard run() method automatically suppresses this exception, meaning, it's caught and ignored, but effectively breaks the run() loop, which is just what we want. The lmtp and rest runners implement their own run loops, so they also have to handle this exception, by ignoring it.
* Delete subscription requests when a mailing list is deleted.Barry Warsaw2017-01-081-6/+12
| | | | Closes #214
* Bump copyright years.Barry Warsaw2017-01-0440-40/+40
|
* Make code style review pass.Barry Warsaw2017-01-041-18/+27
|
* Simplified the various list settings and remamed several things.Mark Sapiro2016-12-261-34/+12
|
* Merged from master.Mark Sapiro2016-12-0940-40/+40
|\
| * Use `atpublic` for @public instead of internal copy.Barry Warsaw2016-11-2940-40/+40
| |
* | Merge branch 'dmarc' of gitlab.com:msapiro/mailman into dmarcMark Sapiro2016-11-261-0/+64
|\ \ | |/ |/|
| * DMARC mitigations, part 1a.Mark Sapiro2016-10-311-0/+64
| |
* | Fix the Flake8 ignore tagsAurélien Bompard2016-11-211-0/+1
|/
* Implement the review suggestionsAurélien Bompard2016-10-261-2/+3
| | | | See !161
* Add a method to find list using properties filtersAurélien Bompard2016-10-261-0/+9
| | | | | | This allows the filtering to be done at the database level. It also makes list pagination much more efficient, since the slicing is done at the database level too.
* Manual merge.Barry Warsaw2016-10-252-3/+3
| | | | * Rebased, cleaned up, and test improvement.
* replaced `find` method with `bans` propertyAmit Tripathi2016-10-251-11/+5
|
* Added QuerySequence as return type of banned address listAmit Tripathi2016-10-251-0/+7
|
* Refactor.Barry Warsaw2016-10-181-2/+2
|
* Simplify the implementation.Barry Warsaw2016-10-171-11/+3
| | | | | | | | | | | | | | | | | | | | | | This merges the SubscriptionManager and UnsubscriptionManager into a single SubscriptionManager implementation that handles both register() and unregister(). This allows us to use direct class-based adaptation instead of the more clunky getAdapter() API. We can also eliminate the funky _get_workflow() implementation detail. This has a couple of side-effects. .confirm() must lookup the token in the pendings database and pull out the pending type, dispatching to the proper class depending on the type, or raising a LookupError if the token is None or there is no pendable associated with the given token. This feels like an acceptable trade-off. However, this *also* means that IWorkflowStateManager must lose its 'name' argument in its methods. That's because we won't actually know the name until its too late. Honestly, the name wasn't providing much value anyway (it was always the subclass's name), so losing that seems fine too. The complication here is that the name was a primary key in the 'workflowstate' table, so we need to add its removal in the database migration.
* Split registration (subscription) and unsubscription:Barry Warsaw2016-09-132-2/+15
| | | | | | | | * events * notices * handlers Also, be sure to do only one `leave` command per email.
* Fix more tests.Barry Warsaw2016-09-111-0/+3
|
* Fix many failures.Barry Warsaw2016-09-082-1/+76
| | | | Also, document more APIs.
* CheckpointingBarry Warsaw2016-09-011-1/+0
|
* Checkpointing.Barry Warsaw2016-09-012-115/+88
|
* Intermediate CommitAbhilash Raj2016-09-012-5/+8
|
* New template system. Closes #249Barry Warsaw2016-07-166-269/+289
| | | | | The new template system is introduced for API 3.1. See ``src/mailman/rest/docs/templates.rst`` for details.
* Better handling of the REST API plumbing.Barry Warsaw2016-06-281-1/+5
| | | | | | | | | * Add a version_info field which is a better way to do ordered comparisions of the API version. * All subresources now get their .api attribute set automatically, if they are passed back through the ObjectRouter. No more fiddling with context['api'] (unless of course, they don't make a roundtrip through the main ObjectRouter loop.
* Clean up the User.absorb() method and tests.Barry Warsaw2016-05-142-2/+18
|
* Clean up.Barry Warsaw2016-05-131-2/+9
|
* Implement suggestions from the reviewAurélien Bompard2016-05-041-2/+0
|
* Add a method to merge a user into another userAurélien Bompard2016-05-042-0/+14
|
* Update docstrings and add a missing attribute.Barry Warsaw2016-05-031-8/+10
|
* Add NEWS, tweak an interface, and rewrite a unit test.Barry Warsaw2016-04-181-5/+6
|
* Extend ISubscriptionService interface.Harshit Bansal2016-04-181-0/+15
| | | | | | Add documentation. Extend ISubscriptionService interface.
* public() takes keyword arguments.Barry Warsaw2016-04-041-2/+1
|
* Import order flake8 plugin.Barry Warsaw2016-03-2726-26/+26
| | | | Fix lots of import order errors discovered by the new plugin.
* Reorder the @public definition.Barry Warsaw2016-03-251-4/+2
| | | | This allows us to import it in more places without threat of import errors.
* Clean up the interfaces directory.Barry Warsaw2016-03-2539-414/+184
|
* Clean up the core directory.Barry Warsaw2016-03-246-10/+36
| | | | | | | mailman/core/errors.py is gone now. We had a duplicate base exception which now always comes from mailman/interfaces/errors.py. Obsolete/unused exceptions are remove. The other exceptions are moved to better locations.