summaryrefslogtreecommitdiff
path: root/src/mailman/model/member.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/model/member.py
parenta31184862fc52a3c38059f832d533b137135c1f9 (diff)
downloadmailman-534e90fea33c52585c74fa9127cca8b70178d5e0.tar.gz
mailman-534e90fea33c52585c74fa9127cca8b70178d5e0.tar.zst
mailman-534e90fea33c52585c74fa9127cca8b70178d5e0.zip
Diffstat (limited to 'src/mailman/model/member.py')
-rw-r--r--src/mailman/model/member.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/mailman/model/member.py b/src/mailman/model/member.py
index 48cd54b28..5dde5c629 100644
--- a/src/mailman/model/member.py
+++ b/src/mailman/model/member.py
@@ -24,7 +24,7 @@ __all__ = [
'Member',
]
-from storm.locals import Bool, Int, Reference, Unicode
+from storm.locals import Int, Reference, Unicode
from zope.component import getUtility
from zope.interface import implements
@@ -32,8 +32,9 @@ from mailman.config import config
from mailman.core.constants import system_preferences
from mailman.database.model import Model
from mailman.database.types import Enum
+from mailman.interfaces.action import Action
from mailman.interfaces.listmanager import IListManager
-from mailman.interfaces.member import IMember
+from mailman.interfaces.member import IMember, MemberRole
@@ -43,7 +44,7 @@ class Member(Model):
id = Int(primary=True)
role = Enum()
mailing_list = Unicode()
- is_moderated = Bool()
+ moderation_action = Enum()
address_id = Int()
address = Reference(address_id, 'Address.id')
@@ -54,8 +55,16 @@ class Member(Model):
self.role = role
self.mailing_list = mailing_list
self.address = address
- self.is_moderated = getUtility(IListManager).get(
- mailing_list).default_member_moderation
+ if role in (MemberRole.owner, MemberRole.moderator):
+ self.moderation_action = Action.accept
+ elif role is MemberRole.member:
+ self.moderation_action = getUtility(IListManager).get(
+ mailing_list).default_member_action
+ else:
+ assert role is MemberRole.nonmember, (
+ 'Invalid MemberRole: {0}'.format(role))
+ self.moderation_action = getUtility(IListManager).get(
+ mailing_list).default_nonmember_action
def __repr__(self):
return '<Member: {0} on {1} as {2}>'.format(