| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
* You can access the system configuration via the resource path
``/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.
|
| |\ |
|
| | | |
|
| | |
| |
| |
| |
| | |
unnecessary changes are needed for upstream falcon to support restish-ish
traversal.
|
| |/
|
|
| |
REST tests pass. This requires an as yet unmerged internal change to falcon.
|
| | |
|
| |
|
|
|
|
|
|
| |
attributes of a mailing list's configuration. (LP: #1157881)
Also:
- template.py should only include 2013 for new copyright years.
- Move some bad-path tests in configuration.rst to test_configuration.py
|
| | |
|
| |\
| |
| |
| | |
(given by Terri Oda). (LP: #1062893)
|
| |/ |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
name or password. For passwords, you pass in the clear text password and
Mailman will hash it before storing.
Also:
* Major refactoring of validators for PUT and PATCH. Pull the common logic
out of configuration.py and put it in a PatchValidator class in
helpers.py. Also move GetterSetter to helpers.py
* Add new exception classes RESTError, UnknownPATCHRequestError,
ReadOnlyPATCHRequestError. These are used in the PatchValidator.
* Added Validator.update() which works nicely for PATCH and PUT.
|
| |
|
|
| |
Sulfrian. (LP: #1039129)
|
| |
|
|
| |
(LP: #975696)
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ArchivePolicy. This describes the three states of never archive, archive
privately, and archive_publicly. (LP: #967238)
Database
--------
* Schema migrations (LP: #971013)
- include_list_post_header -> allow_list_posts
- news_prefix_subject_too -> nntp_prefix_subject_too
- news_moderation -> newsgroup_moderation
- archive and archive_private have been collapsed into archive_policy.
- nntp_host has been removed.
* The PostgreSQL port of the schema accidentally added a moderation_callback
column to the mailinglist table. Since this is unused in Mailman, it was
simply commented out of the base schema for PostgreSQL.
|
| |/
|
|
|
|
| |
include_list_post_header -> allow_list_posts
Also add a bunch more migration tests.
|
| |
|
|
|
|
|
|
|
|
|
| |
"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)
|
| |
|
|
|
|
|
|
|
|
|
| |
postings go through the `posting_chain` while messages to owners to through
`owners_chain`. The default `built-in` chain is renamed to
`default-posting-chain` while the `built-in` pipeline is renamed
`default-posting-pipeline`.
* Schema changes:
- start_chain -> posting_chain
- pipeline -> posting_pipeline
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
used in welcome and goodbye messages, and supports both language and
mailing list specifications. E.g. mailman:///test@example.com/it/welc.txt
* Schema changes:
- welcome_msg -> welcome_message_uri
- goodbye_msg -> goodbye_message_uri
- send_welcome_msg -> send_welcome_message
- send_goodbye_msg -> send_goodbye_message
* New `ITemplateLoader` utility.
|
| | |
|
| |
|
|
|
|
|
| |
* Separate out the RFC 2369 header adding handler.
* Dynamically calculate the `List-Id` header instead of storing it in the
database. This means it cannot be changed.
* Be sure to clean out any digest .mmdf files when the world is reset.
|
| |
|
|
|
| |
for consistency. This changes the REST API for mailing list
resources. (LP: #787599)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now, nonmembers are represented by a separate roster of IMembers, the latter
which has grown a `moderation_action` enum. When that action is `defer`, then
the normal processing rules apply. Anything else and the `moderation` chain
is jumped to for a shortcut to moderation (which may include immediate
acceptance).
TODO: handle unregistered nonmembers.
Details:
* The member-moderation rule is renamed to just moderation, and handles both
members and nonmembers (though the latter must currently be registered).
* The moderation rule is moved up in the builtin chain. It is now checked
after `approved`, `emergency`, and `loop`, but before the normal moderation
checks. This means that nonmember postings will be (by default) held much
earlier.
* IMember.is_moderated is removed.
* IMember.moderation_action is added.
* IMailingList.default_member_moderation is removed.
* IMailingList.default_member_action and
IMailingList.default_nonmember_action are added.
* MemberRole.nonmember is added.
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
lp:~jimmy-sigint/mailman/restapi_additional_attributes
Ostensibly, this adds support for a few additional attributes through the REST
API:
* default_member_moderation
* generic_nonmember_action
* member_moderation_action
* reply_goes_to_list
* send_welcome_msg
* welcome_msg
However, I had never previously fleshed out the conversion of
default_member_moderation and member_moderation_action into the MM3 way of
things. That is now done. Non-member moderation still needs to be done.
Specific changes:
* mailman.chains.base.Chain no longer self registers
* The built-in chain gets a new link for checking 'member-moderation'. If
this rule matches, it jumps to the 'member-moderation' chain, which checks
member_moderation_action and returns a link that jumps to the appropriate
terminal chain.
* Chain initialization is done by the same auto-detection as rules, handlers,
etc. The one tricky thing is that abstract base classes such as Chain and
TerminalChainBase can't be instantiated. For now, there's an ugly special
case to skip these.
* default_member_moderation is now exposed in the IMailingList interface.
* Member.is_moderated gets set in the constructor from the mailing list's
default_member_moderation.
* The 'moderation' rule is renamed 'member-moderation'.
TODO:
* Work out non-member moderation
* Add member_moderation_action to IMailingList
* Double check tests for reply_goes_to_list, send_welcome_msg, and welcome_msg
|
| |/
|
|
| |
member_moderation_action, default_member_moderation and generic_nonmember_action to the writable attributes in the REST service
|
| |
|
|
|
|
| |
resource updates. None of the lower components (well, except restish)
actually allows us to extend things for PATCH in any kind of principled way.
I am the Kludge King.
|
| | |
|
| |
|
|
| |
considerably.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
multiversioned web services. In concept, that's a great idea, but in (current
as of 0.9.18) practice it sucks because it /forces/ us to adopt multiversions
when really I could care less. After gobs of painful experimentation, this
passes all the tests. I guess that means it's right <wink>.
Another, more reasonable fix is to re-order when logging is initialized. This
is moved to the start of initialize_2() because in the test environment, we
don't want to initialize the loggers until after the test configuration has
been pushed. Otherwise, because of the changes to support the FHS, logging
will go to the wrong place. This really only affects tests, since in
operational mode, initialize always happens immediately one after another.
|
| | |
|
| |
|
|
|
| |
Update the lazr.restful IWebServiceConfiguration implementation to include the
new hop_by_hop_headers attribute, by way of BaseWSGIWebServiceConfiguration.
|
| |
|
|
|
|
|
|
|
| |
webserver.
Fix the https/http urls.
Add the adapter for HTTPCharsets so POSTs work properly. Nice little cargo
cult from lazr.restful.
|
| | |
|
| |
|
|
|
|
|
| |
* Get rid of in-Python adapter registration in favor of ZCML. Eventually, I'd
like to get rid of the ZCML.
* Set the view_permission to None, but it's still not right.
* Add IDomainSet and an adapter from Configuration to IDomainSet.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
Add logging to the RESTRunner.
Also, use pkg_resources.resource_stream() instead of .resource_string() where
appropriate.
Add a bunch of XXX comments for things I need to figure out about the Zope-ish
parts of the lazr.restful implementation. Change __getitem__() api to
_lookup().
|
| |
|
|
|
|
|
|
|
| |
* Use the source version of lazr.restful until it's cheeseshopped.
* IHasGet -> IResolvePathNames
* path_override -> None; we don't need this
* Simplify publication. We don't need anything fancy, except that what sucks
is that it seems like we need to unwrap the security proxy in callObject()
* Adaptation to IAbsoluteURL still doesn't work right.
|
| | |
|
|
|
understand. Cargo culting FTW.
|