| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |\ |
|
| | | |
|
| |/ |
|
| |
|
|
|
|
| |
Between the creation of a subscription workflow and its approval, the
user may have been merged with another user. In this case, use the
associated address to find the new user.
|
| |
|
|
|
| |
Messages sent to the list's moderators now include the actual recipient
addresses. Given by Tom Briles.
|
| |
|
|
|
|
|
|
|
| |
Also:
* Ignore coverage in the testing submodule.
* Remove some unreachable code.
* Spelling.
* Fix a bug in run_thru().
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
* events
* notices
* handlers
Also, be sure to do only one `leave` command per email.
|
| | |
|
| |
|
|
| |
Also, fix the return value of .unregister(), and make the tests pass.
|
| | |
|
| | |
|
| |
|
|
| |
Also, document more APIs.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
The new template system is introduced for API 3.1. See
``src/mailman/rest/docs/templates.rst`` for details.
|
| | |
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
* Get rid of explicit __all__ settings and use the @public decorator.
* Get rid of ^L's
* Use expected_count argument for get_queue_messages()
* Various code modernizations.
* Other minor changes to make flake8 happy.
|
| |
|
|
|
| |
New subscription requests are rejected if there is already one pending.
With thanks to Anirudh Dahiya. (Closes #199)
|
| | |
|
| | |
|
| |
|
|
| |
the mailman.model package.
|
| |
|
|
|
|
| |
use len() and slicing on SQLAlchemy query results. We also don't need to
list()-ify the results in the tests. This isn't perfect, but at least it
doesn't introduce yet another layer violation.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Additional cleanups by Barry.
Fix the SubscriptionService.find_members SQL query on PostgreSQL.
Assert that an unsupported use case is actually unsupported.
Various little clean ups.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
once their subscription is completed.
Remove some dead tests.
Update an interface.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
"token owner". The latter describes who owns the token --i.e. which phase of
the workflow is being waited on. It can either be no one, the subscriber, or
the moderator.
Tokens and token owners are properly initialized and reset when the workflow
is completed, so we always know which step of the process is being waited on.
Also, remove ISubscriptionService.join() since this will now be handled by the
IRegistrar adapter.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
pendable data since that gets added automatically by the IPendings utility.
After the user is subscribed, clean up the saved workflows and reset the token
to None.
Give the SubscriptionWorkflow a name property for convenience.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
course. This commit contains test failures because the next step is to hook
everything up.
Changes here include:
* confirm.txt removes the URL since we can't know that.
* Changes to the ConfirmationNeededEvent
* Create the Pendable early in the workflow.
* Clean up test.
* Update IRegistrar docstring.
|
| | |
|
| |
|
|
|
| |
Specifically, log a message and send a notification to the list owners when a
subscription is held and the list is so configured.
|
| |
|
|
|
|
|
|
|
|
| |
To handle the case of restoring a saved workflow, allow the subscriber to be
None in the constructor, but assert that it is not None after the first
workflow step.
Add setters/getters for handling save/restore.
In the base workflow interface, rename key to token.
|
| |
|
|
|
|
|
|
|
|
| |
* TO DO:
- hook up sending of confirmation
- processing confirmations and continuing workflow
- get tokens for saving workflows
- integrate with RequestRecord
- integrate with hold_subscription
- after getting moderator approval, continue workflow
|
| | |
|