| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | |
|
| | |
| |
| |
| | |
removed.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
IMailingList.style_name attribute. The problem is, there's nothing to
guarantee that only one style will get run, and there's no sense in keeping
track of the last style applied.
Also:
* Remove ListManager.create()'s setting of .personalize and .display_name.
These should be left to the styles. (There's no reason why only these two
would be set here.)
* Fix some typos.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Rework list style management. No more style priorities or matching.. Now,
you name a style explicitly to apply and that's it.
* create_list() now takes a `style` argument.
* config file now names both a default style to use, and a set of paths to
scan for IStyle instances. (This could be a model for other plugins.)
* added IMailingList.style_name to record the last style applied, but this is
going to be removed in subsequent revisions.
Also:
* Move find_components() and scan_module() from app/finder.py to
utilities/modules.py
* Cleaned up lifecycle.rst for better documentation. Some tests moved to
test_lifecycle.py.
* Remove some unnecessary test tearDown() code.
|
| | |\
| |/
|/| |
|
| |\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
data must contain a single parameter `cleartext_password` and if this
matches, a 204 (No Content) will be returned, otherwise a 403 (Forbidden)
is returned. (LP: #1065447)
Also:
* Clean up the users.rst REST page so that it reads as better documentation.
Move some tests into the unittests.
* Fix (with a new test), the handling of ExistingAddressError when creating
new users via REST.
* Fix (with a new test), the crashing when .../users/<id>/addresses is
referenced on a non-existing user.
* Add hex_md5 as a deprecated passlib hash scheme for the test suite. This
allows us to test hash migration by creating an initial has as hex_md5
(another crappy hash), and watching verified passwords get migrated to
roundup_plaintext (and even crappier hash ;).
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
data must contain a single parameter `cleartext_password` and if this
matches, a 204 (No Content) will be returned, otherwise a 403 (Forbidden)
is returned. (LP: #1065447)
|
| | |
| |
| |
| |
| |
| |
| | |
* Migrate non-doctests to the test_users.py unittest.
* Add more corner cases to the unittest.
* Be sure to return a 404 when trying to get the address records of a
non-existant user.
|
| |/ |
|
| |\ |
|
| | |
| |
| |
| | |
subcommands. (LP: #1035033)
|
| | |\
| | |
| | |
| | |
| | | |
when a new member joins a mailing list, and an `UnsubscriptionEvent` when a
member leaves a mailing list. (LP: #1047286)
|
| | |/
| |
| |
| |
| | |
when a new member joins a mailing list, and an `UnsubscriptionEvent` when a
member leaves a mailing list. (LP: #1047286)
|
| |/ |
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
moderation. (LP: #1090753)
* Fixed `send_goodbye_message()`. (LP: #1091321)
Also:
* Rewrite and refactor request.rst into better documentation, moving
non-good-path tests into unittests. This doctest now only describes the
IRequests API, while the bulk of the moderation documentation now lives in
moderator.rst.
* When a subscription request is pended, the `delivery_mode` key is now just
the enum item's name, instead of the str() of the enum (which would include
the class name). We know it's always going to be a DeliveryMode enum.
* Refactor out the welcome_message calculation from the welcome_message_uri,
since the same algorithm can apply to goodbye_message_uri.
* When a _Request is retrieved, include the RequestType enum name in the data
dictionary (if there is one) under the `_request_type` key. Some APIs find
this useful, but it's not directly returned otherwise.
* For held messages via the REST API, flatten the `data` key into the
top-level JSON representation, exposing some of the _mod_* keys under their
non-_mod_* equivalent. Ignore _mod_* keys we don't care about. This is an
API change.
|
| | |
| |
| |
| | |
* Fix LP: 1091321; typo in send_goodbye_message().
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
documentation. Move non-documentation tests into a separate unittest file.
* Separate out the doctests for IRequest from the doctests for
app/moderator.py and place the latter in a separate file.
* Fix typo in app/membership.py (s/send_goodbye_msg/send_goodbye_message), but
LP: #1091321 tracks more needed fixes in this area.
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
a clean up pass and thorough unit testing).
* Insert the RequestType enum name into the data dictionary returned by
get_request(). Otherwise, there's really no good way to get that
information, which several APIs need.
* Flatten the data dictionary returned by held message JSON representations,
into the JSON dictionary itself. Do a filtering and rename pass on the
keys.
- rename 'id' to 'request_id'
- remove the redundant 'key'
* Refactor some common stuff into _ModerationBase, although more refactoring
is coming.
|
| | |
| |
| |
| |
| |
| | |
* hold_subscription(): Don't str(mode) to get a string representation, just
mode.name since we know it is a DeliveryMode. This means we don't need to
split the value later in handle_subscription().
|
| |\ \
| | |
| | |
| | | |
(given by Terri Oda). (LP: #1062893)
|
| |/ / |
|
| |/ |
|
| |
|
|
|
|
| |
addresses and memberships. (LP: #1074374)
Also: Clean up pyflakes warning by removing an obsolete __all__ entry.
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
into their own configuration files. Reworked by Barry to use the new external
configuration file support, and to make test suite succeed.
Configuration
-------------
* `[passlib]path` configuration variable renamed to `[passlib]configuration`.
* Postfix-specific configurations in the `[mta]` section are moved to a
separate file, named by the `[mta]configuration` variable.
* In the new `postfix.cfg` file, `postfix_map_cmd` is renamed to
`postmap_command`.
Also:
* More Python 2.7-isms, use assertMultiLineEqual() directly.
* Added external_configuration() and load_external() to mailman.config.config
* ConfigLayer does a blanket set of [postfix]postmap_command so subtests
generally won't have to.
|
| | |\
| | |
| | |
| | |
| | | |
into their own configuration files. Reworked by Barry to use the new external
configuration file support, and to make test suite succeed.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There's a new "configure" entry in the archiver's section, which can
point to an ini-compatible configuration file (ConfigParser is used) for
additional archiver-specific configuration.
The existing archiver config have been split off schema.cfg to their own
configuration files. These shipped files can be overridden by a conf
file of the same name in $ext_dir.
The ini-file loading method should be rather generic, in case we want
the same feature somewhere else.
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
-------------
* `[passlib]path` configuration variable renamed to `[passlib]configuration`.
* Postfix-specific configurations in the `[mta]` section are moved to a
separate file, named by the `[mta]configuration` variable.
* In the new `postfix.cfg` file, `postfix_map_cmd` is renamed to
`postmap_command`.
Also:
* More Python 2.7-isms, use assertMultiLineEqual() directly.
* Added external_configuration() and load_external() to mailman.config.config
* ConfigLayer does a blanket set of [postfix]postmap_command so subtests
generally won't have to.
|
| | | |
|
| |\ \ |
|
| | | | |
|
| |\ \ \ |
|
| | | | |
| | | |
| | | |
| | | | |
subprocesses when -C was given. LP: #982551
|
| |\ \ \ \
| |/ / /
|/| / /
| |/ /
| | | |
The code base is now also `python2.7 -3` clean, although there are still
some warnings in 3rd party dependencies. LP: #1073506
|
| |/ /
| |
| |
| |
| | |
The code base is now also `python2.7 -3` clean, although there are still
some warnings in 3rd party dependencies. LP: #1073506
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
--------
* The `ban` table now uses list-ids to cross-reference the mailing list,
since these cannot change even if the mailing list is moved or renamed.
Interfaces
----------
* The `IBanManager` is no longer a global utility. Instead, you adapt an
`IMailingList` to an `IBanManager` to manage the bans for a specific
mailing list. To manage the global bans, adapt ``None``.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
support. Contributed by Jimmy Bergman.
* `bin/mailman aliases` loses the `--output`, `--format`, and `--simple`
arguments, and adds a `--directory` argument. This is necessary to support
the Postfix `relay_domains` support.
|
| |/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
support. Contributed by Jimmy Bergman.
* `bin/mailman aliases` loses the `--output`, `--format`, and `--simple`
arguments, and adds a `--directory` argument. This is necessary to support
the Postfix `relay_domains` support.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
list creation/removal.
Improve postfix documentation in MTA.rst by referencing the official docs.
|
| | |\ \
| |/ /
|/| | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
POST to .../addresses/<email>/verify and .../addresses/<email>/unverify
respectively. The POST data is ignored. It is not an error to verify or
unverify an address more than once, but verifying an already verified
address does not change its `.verified_on` date. (LP: #1054730)
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| |\| |
| |/
|/|
| |
| |
| |
| |
| | |
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.
|