summaryrefslogtreecommitdiff
path: root/src/mailman/rest/root.py
Commit message (Collapse)AuthorAgeFilesLines
* Add self_links to the system configuration resources.Barry Warsaw2017-05-231-1/+11
| | | | Closes #335
* Add an explanatory comment. See GL#324Barry Warsaw2017-05-091-0/+4
|
* Bump copyright years.Barry Warsaw2017-01-041-1/+1
|
* Use `atpublic` for @public instead of internal copy.Barry Warsaw2016-11-291-1/+1
|
* New template system. Closes #249Barry Warsaw2016-07-161-0/+17
| | | | | The new template system is introduced for API 3.1. See ``src/mailman/rest/docs/templates.rst`` for details.
* Better handling of the REST API plumbing.Barry Warsaw2016-06-281-2/+2
| | | | | | | | | * Add a version_info field which is a better way to do ordered comparisions of the API version. * All subresources now get their .api attribute set automatically, if they are passed back through the ObjectRouter. No more fiddling with context['api'] (unless of course, they don't make a roundtrip through the main ObjectRouter loop.
* Revert a few incorrect renames.Barry Warsaw2016-04-031-5/+5
|
* Don't pass `api` when it's readily available.Barry Warsaw2016-04-031-21/+12
|
* API consistency.Barry Warsaw2016-04-031-2/+2
|
* Checkpointing.Barry Warsaw2016-04-021-54/+27
|
* Sort chains and pipelines before returning themSimon Hanna2016-04-021-2/+2
| | | | Update tests to check for return values
* Expose chains through the rest interfaceSimon Hanna2016-04-021-0/+11
|
* Expose pipelines through the rest interfaceSimon Hanna2016-04-021-0/+11
|
* Clean up the rest directory.Barry Warsaw2016-03-251-7/+7
|
* Expose the ban list on the REST APIAurélien Bompard2016-01-131-0/+12
|
* Refactor API differences into a separate class.Barry Warsaw2016-01-131-3/+3
| | | | | | | | | | | 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-131-14/+15
| | | | | | 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.
* Happy New Year.Barry Warsaw2016-01-021-1/+1
|
* Major push for completing issue #121. Now in API 3.1, all UUIDs must be theBarry Warsaw2015-12-301-8/+22
| | | | | | | | | 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).
* Implement the REST API for <api>/owners.Barry Warsaw2015-09-231-3/+3
|
* Start of owners top level resource.Barry Warsaw2015-09-231-0/+8
|
* * REST API version 3.1 introduced. Mostly backward compatible with versionBarry Warsaw2015-07-181-3/+18
| | | | | | 3.0 except that UUIDs are represented as hex strings instead of 128-bit integers, since the latter are not compatible with all versions of JavaScript.
* Update docstring.Barry Warsaw2015-03-291-0/+1
|
* * A new API is provided to support non-production testing infrastructures,Barry Warsaw2015-02-131-1/+29
| | | | | | | | | | | | allowing a client to cull all orphaned UIDs via ``DELETE`` on ``<api>/reserved/uids/orphans``. Note that *no guarantees* of API stability will ever be made for resources under ``reserved``. (LP: #1420083) Also: - Allow @dbconnection methods to be @staticmethods taking only one argument, the store to perform the query on.
* Bump copyright years.Barry Warsaw2015-01-041-1/+1
|
* * ``$cwd`` is now an additional substitution variable for the ``mailman.cfg``Barry Warsaw2015-01-031-0/+13
| | | | | | | | | | | | | file's ``[paths.*]`` sections. A new ``[paths.here]`` section is added, which puts the ``var_dir`` in ``$cwd``. It is made the default layout. * You can now view the contents of, inject messages into, and delete messages from the various queue directories via the ``<api>/queues`` resource. Also: inject_message() and inject_text() now return the filebase of the file injected into the queue directory.
* * You can access the system configuration via the resource pathBarry Warsaw2014-12-261-3/+30
| | | | | | | | | ``/3.0/system/configuration/<section>``. This returns a dictionary with the keys being the section's variables and the values being their value from ``mailman.cfg`` as verbatim strings. You can get a list of all section names via ``/3.0/system/configuration`` which returns a dictionary containing the ``http_etag`` and the section names as a sorted list under the ``sections`` key. The system configuration resource is read-only.
* Deprecate <api>/system path in favor of <api>/system/versions.Barry Warsaw2014-12-261-4/+7
|
* Remove huge amounts of now unnecessary file boilerplate.Barry Warsaw2014-12-221-5/+1
|
* Lots of REST test fixes.Barry Warsaw2014-12-151-4/+4
|
* Fix some basic REST plumbing, and make test_rosters pass.Barry Warsaw2014-12-111-1/+2
|
* Refactor so that most modules don't need to import falcon, and so fewerBarry Warsaw2014-08-141-3/+3
| | | | | unnecessary changes are needed for upstream falcon to support restish-ish traversal.
* Complete the conversion from restish to falcon, modulo a clean up pass. AllBarry Warsaw2014-08-141-4/+3
| | | | REST tests pass. This requires an as yet unmerged internal change to falcon.
* Lists and pagination are ported.Barry Warsaw2014-08-131-7/+2
|
* Get addresses.rst, i.e. /<api>/addresses working.Barry Warsaw2014-08-121-22/+5
|
* First pass at converting to falcon for the REST API layer.Barry Warsaw2014-08-121-34/+66
| | | | | Currently, only /<api>/system and its subpaths work, but basic auth does work too. Requires a refactoring modification to falcon.
* 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.
* Bump copyright years.Barry Warsaw2014-01-011-1/+1
|
* Bump copyright years.Barry Warsaw2013-01-011-1/+1
|
* * List styles are supported through the REST API. Get the list of availableBarry Warsaw2012-12-301-0/+7
| | | | | | | | | | | styles (by name) via `.../lists/styles`. Create a list in a specific style by using POST data `style_name=<style>`. (LP: #975692) Also: * Rewrite list.rst and some of configuration.rst to be more readable as documentation. Bad-path tests are moved to unittests. * Some improvements to printing lists as part of REST responses. This eliminates the ugly u''-prefixes on strings.
* * Add list_id to JSON representation for a mailing list (given by JimmyBarry Warsaw2012-09-221-2/+4
| | | | | | | | Bergman). * The canonical resource for a mailing list (and thus its self_link) is now the URL with the list-id. To reference a mailing list, the list-id url is preferred, but for backward compatibility, the posting address is still accepted.
* * Major redesign of the template search system, fixing LP: #788309. $var_dirBarry Warsaw2012-03-031-0/+24
| | | | | | is now used when search for all template overrides, site, domain, or mailing list. The in-tree English templates are used only as a last fallback.
* copybumpBarry Warsaw2012-01-011-1/+1
|
* * Preferences for addresses, users, and members can be accessed, changed, andBarry Warsaw2011-09-231-5/+14
| | | | | | deleted through the REST interface. Hierarchical, combined preferences for members, and system preferences can be read through the REST interface. (LP: #821438)
* * New REST resource http://.../<domain>/lists can be GETed in order to findBarry Warsaw2011-08-301-3/+2
|\ | | | | | | | | all the mailing lists in a specific domain (LP: #829765). Given by Stephen A. Goss.
| * REST API: add listing of mailing lists per domainStephen A. Goss2011-08-191-2/+3
|/
* * New REST resource http://.../members/find can be POSTed to in order to findBarry Warsaw2011-08-131-3/+7
| | | | | | member records. Arguments are `subscriber` (email address to search for - required), `fqdn_listname` (optional), and `role` (i.e. MemberRole - optional). (LP: #799612)
* Complete the ability to change a subscription address, both internally and viaBarry Warsaw2011-04-251-3/+2
| | | | | | | | | | | | | | the REST API. (LP: #643949) * New resource path in REST API: /addresses/<email>/memberships gets all the memberships for a given email address. * In the REST API, PUTting or PATCHing a list configuration now returns a 204 (No Content) success code instead of a 200 success code with an empty body. * When a user is subscribed with their preferred address, changing the preferred address also changes all subscriptions. * When a user is subscribed with a specific address, their subscription can be changed to any verified address they control. * Use a new naming scheme for doctests with multiple mailing lists.
* Give IMembers a unique member id. We have to do this in order to give them aBarry Warsaw2011-04-221-2/+4
| | | | | | | | | | | | | | | | | | | | | | | path at the root of the resource tree (i.e. /members/X) and because when members can be subscribed by their IUser record (for preferred address), their canonical location cannot contain the address they are subscribed with. When their preferred address changes (without otherwise touching their membership), this address will change and that's not good for a canonical location. Other changes: * Added IMember.member_id attribute * Added ISubscriptionService.get_member() so member records can be retrieve by member id. * We can now get individual members by id via the REST API. * Extend the UniqueIDFactory so that it can take a 'context' (defaulting to None). The context is only used in the testing infrastructure so that separate files can be used for user ids and member ids. Otherwise, we'd have gaps in those sequences. * When *not* in testing mode, ensure that UIDs cannot be reused by keeping a table of all UIDs ever handed out. We *should* never get collisions, but this ensures it. * Clean up mailman.sql
* Add REST API for addresses, and change the user REST API to use it whereBarry Warsaw2011-04-191-0/+13
| | | | | | | | | | appropriate. Also: * When an Address instance is created, set its registered_on attribute. * Users may not have a password or real_name, so only include those attributes in the REST API for Users if they are set.