summaryrefslogtreecommitdiff
path: root/src/mailman/rest/configuration.py
diff options
context:
space:
mode:
authorBarry Warsaw2010-12-29 23:54:08 -0500
committerBarry Warsaw2010-12-29 23:54:08 -0500
commit534e90fea33c52585c74fa9127cca8b70178d5e0 (patch)
tree3a5d4088b5af1a4b310dffba711389ac67792dd2 /src/mailman/rest/configuration.py
parenta31184862fc52a3c38059f832d533b137135c1f9 (diff)
downloadmailman-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.py4
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),