| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
|
| |
* Rebased, cleaned up, and test improvement.
|
| | |
|
| |
|
|
|
|
|
|
| |
* events
* notices
* handlers
Also, be sure to do only one `leave` command per email.
|
| |
|
|
| |
Also, document more APIs.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Add documentation.
Extend ISubscriptionService interface.
|
| | |
|
| |
|
|
|
| |
New subscription requests are rejected if there is already one pending.
With thanks to Anirudh Dahiya. (Closes #199)
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Increase coverage.
Add ISubscriptionService.find_member() as per discussion.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
"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.
|
| |
|
|
|
|
| |
* RequestRecord contains no password key so these are not part of the held
requests database any more.
* Pending record contains `email` now instead of `address`.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
reflect this.
Also, mock out sys.stderr on some tests so that their nose2 output is quieter.
A few other minor coding style consistencies.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
now via the RFC 2369 `list_id` instead of the fqdn listname (i.e. posting
address). This is because while the posting address can change if the
mailing list is moved to a new server, the list id is fixed.
(LP: #1024509)
+ IListManager.get_by_list_id() added.
+ IListManager.list_ids added.
+ IMailingList.list_id added.
+ Several internal APIs that accepted fqdn list names now require list ids,
e.g. ISubscriptionService.join() and .find_members().
+ IMember.list_id attribute added; .mailing_list is now an alias that
retrieves and returns the IMailingList.
- list_id added (LP: #1024509)
|
| |
|
|
|
|
|
|
|
|
|
| |
"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)
|
| | |
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
and exposed to the REST API as their integer equivalents. They are stored
in the database using Storm's UUID type.
- ISubscriptionService.get_member() now takes a UUID
- IUserManager.get_user_by_id() now takes a UUID
* Moderators and owners can be added via REST (LP: #834130). Given by
Stephen A. Goss.
- add_member() grows a `role` parameter.
- ISubscriptionService.join() grows a `role` parameter.
* InvalidEmailAddressError no longer repr()'s its value.
* `address` -> `email` for consistency
- delete_member()
- ISubscriptionService.leave()
* Fixed typo in app/subscriptions.py __all__
* AlreadySubscribedError: attributes are now public.
* More .txt -> .rst renames.
|
| |/ |
|
| |
|
|
|
|
|
|
|
| |
* Use zope.events to signal when a mailing list has been created or deleted.
* Register a handler for the ListDeletedEvent which cleans up member
subscriptions.
* Relax the criteria for find_members(), both internally and in the REST API,
so that the subscriber is not required. E.g. you can now find all members
of a mailing list.
|
|
|
member records. Arguments are `subscriber` (email address to search for -
required), `fqdn_listname` (optional), and `role` (i.e. MemberRole -
optional). (LP: #799612)
|