summaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* The order of a mailing list's header matches is significantAurélien Bompard2016-02-299-68/+378
| | | | | | | Add a numerical index property to HeaderMatch objects, and change the HeaderMatchSet manager to take the order into account. Items can now be inserted and removed by index.
* Added extra "=" to make overcome underline and overline mismatchsaurav kumar2016-02-281-1/+1
|
* News.Barry Warsaw2016-02-271-0/+3
|
* Allow List-ID in decoration template URIs.Barry Warsaw2016-02-275-37/+85
| | | | | | | | Closes #196 In mailman: URIs (e.g. IMailingList.header_uri and .footer_uri), you used to be able to only use fqdn-listnames. But since List-IDs are more stable, let's allow those too. Silently deprecate using the fqdn-listname.
* Add documentation on interfacing with qmailThomas Schneider2016-02-251-0/+52
| | | | Signed-off-by: Thomas Schneider <qsuscs@qsuscs.de>
* Handle AlreadySubscribedError in REST.Barry Warsaw2016-02-153-1/+23
| | | | | | | | When approving a subscription request via the REST API, for a user who is already a member, return an HTTP 409 Conflict code instead of the previous server traceback (and resulting HTTP 500 code). Closes #193
* Prevent moderation of messages held for a different list.Barry Warsaw2016-02-074-1/+32
| | | | Closes: #161
* Fix membership query for preferred addresses.Barry Warsaw2016-02-063-2/+36
| | | | | | | When multiple users are subscribed to a mailing list via their preferred address, too many results are returned from a membership query, resulting in an assertion error. Reported by Darrell Kresge. (Closes: #190)
* Add a set_preferred() helper.Barry Warsaw2016-02-069-61/+41
| | | | | This refactors the setting of a user's preferred address to the first in their list of linked addresses.
* Super duper.Barry Warsaw2016-01-2630-68/+42
| | | | | * Python 3-ify super() calls. * Remove a bunch of obsolete exception classes.
* Use the more convenient API.Barry Warsaw2016-01-251-3/+2
|
* Full coverage of the accept chain.Barry Warsaw2016-01-252-2/+78
| | | | Fix some comments.
* Boost coverage and remove dead code.Barry Warsaw2016-01-252-4/+11
|
* Boost coverage.Barry Warsaw2016-01-252-2/+19
| | | | Also, ignore `raise AssertionError` lines globally.
* Make creating Link objects a more convenient.Barry Warsaw2016-01-2510-48/+29
| | | | | | Link.__init__() can now take an IRule or the string naming a rule, which will be looked up in config.rules. Similarly, it can take an IChain or the name of a chain.
* Also add a test for the global ban listAurélien Bompard2016-01-201-0/+12
|
* Give a meaningful message when a banned member tries to joinAurélien Bompard2016-01-202-0/+16
|
* Branch tweaks:Barry Warsaw2016-01-142-5/+13
| | | | | | | | - Fix an interface description. - Fix a copyright year. - Fix quote styles. - Tweak a test. - Add a test.
* Delete bans when their associated list is deletedAurélien Bompard2016-01-144-2/+73
| | | | Also add indexes on the Ban fields that are filtered on.
* Add indexes on the MailingList tableAurélien Bompard2016-01-142-3/+34
| | | | | Ensure that list_id is unique, and add indexes on two commonly filtered-on fields: list_name and mail_host.
* Add NEWS and tweak.Barry Warsaw2016-01-135-8/+11
|
* Member search can be done using GET requestsAurélien Bompard2016-01-132-1/+35
|
* Allow fuzz search for members in SubscriptionServiceAurélien Bompard2016-01-133-4/+31
|
* Clean up the branch for landing.Barry Warsaw2016-01-134-46/+132
| | | | | | | | | | | | * 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.
* Add the self_link for bans and factor some codeAurélien Bompard2016-01-132-18/+41
|
* Expose the ban list on the REST APIAurélien Bompard2016-01-136-0/+222
|
* Just a little more UUID conversion convenience.Barry Warsaw2016-01-133-21/+19
|
* Use common idiom for converting the UUID.Barry Warsaw2016-01-132-14/+15
| | | | Wrap lines.
* Fix getting a list member through the 3.1 APIAurélien Bompard2016-01-132-11/+31
|
* Refactor API differences into a separate class.Barry Warsaw2016-01-1316-93/+107
| | | | | | | | | | | We now have an IAPI interface which defines methods to convert to/from UUIDs to their REST representations, and to calculate the API-homed full URL path to a resource. Add implementations API30 and API31 to handle the two different implementations so far. This also simplifies the various path_to() calls. Also: Add support for diff_cover to tox.ini to check that all differences against the master branch have full test coverage.
* Refactor API contexts.Barry Warsaw2016-01-1314-100/+158
| | | | | | Rather than sprinkle API version string tests all over the place, create an IAPI interface which encapsulates the differences between API 3.0 and 3.1, and arrange for this to be used to convert to and from UUIDs.
* Several optimizations:Barry Warsaw2016-01-1120-97/+105
| | | | | | | | | | | | * Use `yield from` wherever appropriate. * Use SA's .one_or_none() where appropriate. - Fix a bug in MailingList.pass_extensions. - Use ValueError in other places for consistency. - Remove unreached/nonsense code. - Simplify the SubscriptionService.find_member() and .find_members() implementations. - Boost coverage.
* Use the more efficient find_member() API.Barry Warsaw2016-01-111-4/+3
|
* Delegate more to the underlying query object and don't use a cached results.Barry Warsaw2016-01-102-4/+10
|
* Boost coverage.Barry Warsaw2016-01-095-15/+94
|
* Boost coverage.Barry Warsaw2016-01-085-29/+131
|
* Refactor some tests and documentation.Barry Warsaw2016-01-075-216/+339
| | | | | | Increase coverage. Add ISubscriptionService.find_member() as per discussion.
* Docstring.Barry Warsaw2016-01-061-0/+6
|
* A little bit more refactoring, just to keep things cleaner.Barry Warsaw2016-01-062-4/+5
|
* Complete the layer violation fixes by moving the SubscriptionService class toBarry Warsaw2016-01-063-109/+133
| | | | the mailman.model package.
* Additional refactoring to use the QuerySequence wrapper, so that we can stillBarry Warsaw2016-01-069-33/+75
| | | | | | 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.
* Make the members request pageableAurélien Bompard2016-01-067-24/+26
|
* Return SQL queries in IListRequests.of_typeAurélien Bompard2016-01-062-4/+2
|
* Support SQL queries for CollectionMixin._get_collectionAurélien Bompard2016-01-062-4/+20
|
* More coverage.Barry Warsaw2016-01-042-2/+25
|
* Boost coverage.Barry Warsaw2016-01-036-8/+90
| | | | | | Use coverage.ini to ignore a few common idioms, so as to reduce code clutter. Invoke coverage slightly differently in the tox.ini.
* Happy New Year.Barry Warsaw2016-01-02353-358/+358
|
* Cleanups, corner case fixes, and coverage.Barry Warsaw2015-12-319-24/+97
|
* Major push for completing issue #121. Now in API 3.1, all UUIDs must be theBarry Warsaw2015-12-3016-80/+497
| | | | | | | | | hex representations of a UUID, not the int representation. Also: * Some general code cleanup. * Fix issue 185 (REST server crash when subscribing a user without a preferred address).
* More coverage.Barry Warsaw2015-12-294-2/+27
|