~barry/mailman/work1

« back to all changes in this revision

Viewing changes to src/mailman/model/mailinglist.py

  • Committer: Barry Warsaw
  • Date: 2014-01-05 21:21:10 UTC
  • Revision ID: barry@list.org-20140105212110-y39xuab7cnu2kr83
checkpointing

Show diffs side-by-side

added added

removed removed

Lines of Context:
54
54
from mailman.interfaces.mime import FilterType
55
55
from mailman.interfaces.nntp import NewsgroupModeration
56
56
from mailman.interfaces.user import IUser
 
57
from mailman.interfaces.usermanager import IUserManager
57
58
from mailman.model import roster
58
59
from mailman.model.digests import OneLastDigest
59
60
from mailman.model.member import Member
233
234
        return getUtility(IDomainManager)[self.mail_host]
234
235
 
235
236
    @property
236
 
    def scheme(self):
237
 
        """See `IMailingList`."""
238
 
        return self.domain.scheme
239
 
 
240
 
    @property
241
 
    def web_host(self):
242
 
        """See `IMailingList`."""
243
 
        return self.domain.url_host
244
 
 
245
 
    @property
246
237
    def data_path(self):
247
238
        """See `IMailingList`."""
248
239
        return os.path.join(config.LIST_DATA_DIR, self.fqdn_listname)
459
450
            if member:
460
451
                raise AlreadySubscribedError(
461
452
                    self.fqdn_listname, subscriber.email, role)
 
453
            # The address must be linked to a user.
 
454
            if subscriber.user is None:
 
455
                user = getUtility(IUserManager).create_user()
 
456
                user.link(subscriber)
462
457
        elif IUser.providedBy(subscriber):
463
458
            if subscriber.preferred_address is None:
464
459
                raise MissingPreferredAddressError(subscriber)