| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
* Add NEWS entry.
* De-duplicate emails in the sequence passed to the model's
ISubscriptionService.unsubscribe_members() method.
* Modify the semantics of the DELETE method to return a mapping of
addresses to boolean status.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
The `moderation_action` for members and nonmember can now be ``None``
which signals falling back to the appropriate list default action,
e.g. `default_member_action` and `default_nonmember_action`. Given by
Aurélien Bompard.
Closes #189
|
| |
|
|
|
|
|
|
| |
Members and nonmember's moderation action should be None by default, and
in that case the moderation rule should fallback to the mailing list's
default action.
Fixes: #189
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Add NEWS
* Update copyright years.
* Adjust for new IAPI.path_to() interface.
* Style.
* Remove some unreachable code.
* Boost coverage.
* Change some Bad Requests into Not Founds.
* Do not include `list_id` in resource JSON for global bans.
* Rephrase some doctests.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Cleanups by Barry. Closes !67
|
| | |
|
| | |
|
| |
|
|
| |
returns the newly created member.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
reflect this.
Also, mock out sys.stderr on some tests so that their nose2 output is quieter.
A few other minor coding style consistencies.
|
| |
|
|
|
|
|
|
| |
``/find`` which we've never seen before, because those members only have an
address record, not a user record. This requires a small change in the API
where the JSON response's ``address`` key now contains the URL to the
address resource, the new ``email`` key contains the email address as a
string, and the ``user`` key is optional.
|
| | |
|
| | |
|
| |
|
|
| |
This is related to LP: #1156529.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
| |\
| |
| |
| | |
the REST API (LP: #833132). Given by Stephen A. Goss.
|
| | |
| |
| |
| | |
with tests
|
| |\ \
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
|
|
|
|
| |
list. (LP: #825570)
Untested code is broken code.
|
|
|
member records. Arguments are `subscriber` (email address to search for -
required), `fqdn_listname` (optional), and `role` (i.e. MemberRole -
optional). (LP: #799612)
|