summaryrefslogtreecommitdiff
path: root/src/mailman/interfaces/registrar.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Intermediate CommitAbhilash Raj2016-09-011-112/+0
|
* Clean up the interfaces directory.Barry Warsaw2016-03-251-8/+3
|
* Happy New Year.Barry Warsaw2016-01-021-1/+1
|
* Checkpointing.Barry Warsaw2015-04-161-9/+14
|
* Plumb the subscription policy through the REST API.Barry Warsaw2015-04-151-2/+3
|
* Give the SubscriptionWorkflow a member attribute which gets set to the memberBarry Warsaw2015-04-151-3/+3
| | | | | | | | once their subscription is completed. Remove some dead tests. Update an interface.
* The SubscriptionWorkflow and Registar classes now have both a token and aBarry Warsaw2015-04-151-3/+5
| | | | | | | | | | | | "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.
* Prevent replay attacks with the confirmation token.Barry Warsaw2015-04-151-3/+3
|
* Full test suite passes.Barry Warsaw2015-04-141-2/+7
| | | | | | | | | | | | | * Make sure Registrar.discard() removces any workflow state manager state associated with the token, and that this is flushed to SA. * Adjust the email commands to the new IRegistrar API. * Update the IRegistrar interface. * Add IWorkflowStateManager.discard() and make `count` an attribute/property. * Mark two tests as expected failures due to LP: #1444184.
* Checkpointing.Barry Warsaw2015-04-141-31/+31
|
* SubscriptionPolicy is largely done, modulo bugs, and the unknown-unknown ofBarry Warsaw2015-04-131-14/+5
| | | | | | | | | | | | | 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.
* Bump copyright years.Barry Warsaw2015-01-041-1/+1
|
* Remove huge amounts of now unnecessary file boilerplate.Barry Warsaw2014-12-221-3/+0
|
* Use print functions consistently through, and update all __future__ imports toBarry Warsaw2014-04-281-1/+1
| | | | | | | | reflect this. Also, mock out sys.stderr on some tests so that their nose2 output is quieter. A few other minor coding style consistencies.
* Several internal improvements:Barry Warsaw2014-01-061-0/+24
| | | | | | | | | | | | | | | | | | | | | | * New events: - ConfirmationNeededEvent is triggered when a pendable requiring confirmation is created. This allows us to define an event handler for this event which sends the user notification. - SubscriptionEvent is triggered when a member is added to a mailing list. This lets us define an event handler which sends the welcome message. * send_welcome_message() now takes a member parameter instead of an address, which lets us directly access the member's delivery mode and user display name (if the member has a user, which it might not in some cases). * Use the list id in the pendable record instead of the list name for robustness (the latter can change but the former is permanent). * Test more registration conditions. * In the bin/runner command line switch handling, default `verbose` to None instead of False. This makes it work better with nose's -E switch (log to stderr). * In call_api(), if a POST, PUT, or PATCH method is used and data is None, encode the empty dictionary; seems like the behavior of urlencode() has changed, so this is safer. * Fix style and pyflakes warnings.
* Bump copyright years.Barry Warsaw2014-01-011-1/+1
|
* Bump copyright years.Barry Warsaw2013-01-011-1/+1
|
* Schema change. After discussion at Pycon, we decided to change "real_name" toBarry Warsaw2012-03-151-3/+3
| | | | | | | | | | | "display_name" across the board. * `IMailingList.real_name` -> `IMailingList.display_name` * `IUser.real_name` -> `IUser.display_name` * `IAddress.real_name` -> `IAddress.display_name` * Schema changes: - real_name -> display_name (mailinglist, user, address)
* * The `join` email command no longer accepts an `address=` argument. ItsBarry Warsaw2012-02-291-1/+4
| | | | | | | | | `digest=` argument now accepts the following values: `no` (for regular delivery), `mime`, or `plain`. Also: - Fix get_queue_messages() to properly sort on the string representation of a header, since it could be a Header instance.
* copybumpBarry Warsaw2012-01-011-1/+1
|
* Happy New Year.Barry Warsaw2011-01-011-1/+1
|
* Because it was just to damn confusing, rename IAddress.address toBarry Warsaw2011-01-011-10/+11
| | | | | | IAddress.email and IAddress.original_address to IAddress.original_email. From now on we'll use "address" to talk about the IAddress object and "email" to talk about the textual email address.
* Happy New Year.Barry Warsaw2010-01-011-1/+1
|
* * Add REST interface for joining a mailing list.Barry Warsaw2009-12-281-1/+1
| | | | | | * add_member() now returns the newly created IMember. * Reorganized several exceptions and exposed them to the REST API. * Added NoSuchListError.
* IRegistrar.register() now requires a mailing list argument. This fixes theBarry Warsaw2009-12-101-2/+7
| | | | problem where the confirmation message doesn't know where to come from.
* Push the source directory into a 'src' subdirectory so that zc.buildout worksBarry Warsaw2009-01-251-0/+83
correctly regardless of how it's used.