summaryrefslogtreecommitdiff
path: root/src/mailman/model/mailinglist.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/model/mailinglist.py')
-rw-r--r--src/mailman/model/mailinglist.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/mailman/model/mailinglist.py b/src/mailman/model/mailinglist.py
index 68d086ec5..2c55540be 100644
--- a/src/mailman/model/mailinglist.py
+++ b/src/mailman/model/mailinglist.py
@@ -80,6 +80,7 @@ class MailingList(Model):
# List identity
list_name = Unicode()
mail_host = Unicode()
+ _list_id = Unicode(name='list_id')
allow_list_posts = Bool()
include_rfc2369_headers = Bool()
advertised = Bool()
@@ -199,6 +200,7 @@ class MailingList(Model):
assert hostname, 'Bad list name: {0}'.format(fqdn_listname)
self.list_name = listname
self.mail_host = hostname
+ self._list_id = '{0}.{1}'.format(listname, hostname)
# For the pending database
self.next_request_id = 1
# We need to set up the rosters. Normally, this method will get
@@ -231,6 +233,11 @@ class MailingList(Model):
return '{0}@{1}'.format(self.list_name, self.mail_host)
@property
+ def list_id(self):
+ """See `IMailingList`."""
+ return self._list_id
+
+ @property
def domain(self):
"""See `IMailingList`."""
return getUtility(IDomainManager)[self.mail_host]
@@ -463,7 +470,7 @@ class MailingList(Model):
member = store.find(
Member,
Member.role == role,
- Member.mailing_list == self.fqdn_listname,
+ Member.list_id == self._list_id,
Member._address == subscriber).one()
if member:
raise AlreadySubscribedError(
@@ -474,7 +481,7 @@ class MailingList(Model):
member = store.find(
Member,
Member.role == role,
- Member.mailing_list == self.fqdn_listname,
+ Member.list_id == self._list_id,
Member._user == subscriber).one()
if member:
raise AlreadySubscribedError(
@@ -482,7 +489,7 @@ class MailingList(Model):
else:
raise ValueError('subscriber must be an address or user')
member = Member(role=role,
- mailing_list=self.fqdn_listname,
+ list_id=self._list_id,
subscriber=subscriber)
member.preferences = Preferences()
store.add(member)