summaryrefslogtreecommitdiff
path: root/Mailman/constants.py
diff options
context:
space:
mode:
authorBarry Warsaw2007-06-09 15:20:32 -0400
committerBarry Warsaw2007-06-09 15:20:32 -0400
commit3231fd628f6eea30bd6e2be56eb419ed0008d954 (patch)
tree176f80a7b4f72c410e30ab9ba3e3fe2deb1bb1fe /Mailman/constants.py
parente5c04e2a93a58d799dd3940a7935853eb1f2e3e4 (diff)
downloadmailman-3231fd628f6eea30bd6e2be56eb419ed0008d954.tar.gz
mailman-3231fd628f6eea30bd6e2be56eb419ed0008d954.tar.zst
mailman-3231fd628f6eea30bd6e2be56eb419ed0008d954.zip
Implement the new, simplified membership model. Rosters and RosterSets as
they were previously known are now gone. Rosters, rather than being a database entity that collects users, is now just a filter on the member database. This way, we can use generic rosters to search for regular members, digest members, owners, or moderators. More advanced rosters can do all kinds of other membership queries. But rosters no longer need to be a database entity. Users have a name, password, optional preferences, and a set of addresses, but users are not subscribed to mailing lists. Addresses have the email address, some verification information, and optional preferences. Members tie an address to a mailing list, through a role, with optional preferences. Other changes here include: MailList.fqdn_listname() moved to the MailingList model entity. Added MemberRole enum and SystemDefaultPreferences to Mailman.constants. Profiles are renamed to Preferences (same with the interface), but the files are not yet moved. This happens later. We mostly don't need has_*() relationships on the entity classes, because we generally don't need the reverse relationship. Use belongs_to() because that creates the foreign key, even though the wording seems counter intuitive. IAddress.subscribe() added. Tell Elixir to use shortnames for all tables. Remove the OldStyleMembership fields from MailingList. Remove all the interface elements and database fields that talk about rosters and rostersets. Convert Version entity to has_field().
Diffstat (limited to 'Mailman/constants.py')
-rw-r--r--Mailman/constants.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/Mailman/constants.py b/Mailman/constants.py
index 852704364..7b3876a2a 100644
--- a/Mailman/constants.py
+++ b/Mailman/constants.py
@@ -18,6 +18,9 @@
"""Various constants and enumerations."""
from munepy import Enum
+from zope.interface import implements
+
+from Mailman.interfaces import IPreferences
@@ -42,3 +45,22 @@ class DeliveryStatus(Enum):
by_bounces = 3
# Delivery was disabled by an administrator or moderator
by_moderator = 4
+
+
+
+class MemberRole(Enum):
+ member = 1
+ owner = 2
+ moderator = 3
+
+
+
+class SystemDefaultPreferences(object):
+ implements(IPreferences)
+
+ acknowledge_posts = False
+ hide_address = True
+ preferred_language = 'en'
+ receive_list_copy = True
+ receive_own_postings = True
+ delivery_mode = DeliveryMode.regular