diff options
| author | Barry Warsaw | 2010-12-29 23:54:08 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2010-12-29 23:54:08 -0500 |
| commit | 534e90fea33c52585c74fa9127cca8b70178d5e0 (patch) | |
| tree | 3a5d4088b5af1a4b310dffba711389ac67792dd2 /src/mailman/rest/configuration.py | |
| parent | a31184862fc52a3c38059f832d533b137135c1f9 (diff) | |
| download | mailman-534e90fea33c52585c74fa9127cca8b70178d5e0.tar.gz mailman-534e90fea33c52585c74fa9127cca8b70178d5e0.tar.zst mailman-534e90fea33c52585c74fa9127cca8b70178d5e0.zip | |
Fairly significant change to the way member and nonmember moderation occurs.
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.
Diffstat (limited to 'src/mailman/rest/configuration.py')
| -rw-r--r-- | src/mailman/rest/configuration.py | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mailman/rest/configuration.py b/src/mailman/rest/configuration.py index 7b7c127c2..d6982b142 100644 --- a/src/mailman/rest/configuration.py +++ b/src/mailman/rest/configuration.py @@ -174,7 +174,8 @@ ATTRIBUTES = dict( collapse_alternatives=GetterSetter(as_boolean), convert_html_to_plaintext=GetterSetter(as_boolean), created_at=GetterSetter(None), - default_member_moderation=GetterSetter(as_boolean), + default_member_action=GetterSetter(enum_validator(Action)), + default_nonmember_action=GetterSetter(enum_validator(Action)), description=GetterSetter(unicode), digest_last_sent_at=GetterSetter(None), digest_size_threshold=GetterSetter(float), @@ -189,7 +190,6 @@ ATTRIBUTES = dict( leave_address=GetterSetter(None), list_id=GetterSetter(None), list_name=GetterSetter(None), - member_moderation_action=GetterSetter(enum_validator(Action)), next_digest_number=GetterSetter(None), no_reply_address=GetterSetter(None), owner_address=GetterSetter(None), |
