~sakuag333/mailman/lmtp-duplicate-id

« back to all changes in this revision

Viewing changes to src/mailman/interfaces/member.py

  • Committer: Barry Warsaw
  • Date: 2012-12-25 20:44:40 UTC
  • mfrom: (7189.2.2 3.0)
  • Revision ID: barry@list.org-20121225204440-f2yet4vpbwv0thx7
merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
    'DeliveryStatus',
27
27
    'IMember',
28
28
    'MemberRole',
 
29
    'MembershipChangeEvent',
29
30
    'MembershipError',
30
31
    'MembershipIsBannedError',
31
32
    'MissingPreferredAddressError',
32
33
    'NotAMemberError',
 
34
    'SubscriptionEvent',
 
35
    'UnsubscriptionEvent',
33
36
    ]
34
37
 
35
38
 
74
77
 
75
78
 
76
79
 
 
80
class MembershipChangeEvent:
 
81
    """Base class for subscription/unsubscription events."""
 
82
 
 
83
    def __init__(self, mlist, member):
 
84
        self.mlist = mlist
 
85
        self.member = member
 
86
 
 
87
 
 
88
class SubscriptionEvent(MembershipChangeEvent):
 
89
    """Event which gets triggered when a user joins a mailing list."""
 
90
 
 
91
    def __str__(self):
 
92
        return '{0} joined {1}'.format(self.member.address, self.mlist.list_id)
 
93
 
 
94
 
 
95
class UnsubscriptionEvent(MembershipChangeEvent):
 
96
    """Event which gets triggered when a user leaves a mailing list.
 
97
 
 
98
    One thing to keep in mind: because the IMember is deleted when the
 
99
    unsubscription happens, this event actually gets triggered just before the
 
100
    member is unsubscribed.
 
101
    """
 
102
 
 
103
    def __str__(self):
 
104
        return '{0} left {1}'.format(self.member.address, self.mlist.list_id)
 
105
 
 
106
 
 
107
 
77
108
class MembershipError(MailmanError):
78
109
    """Base exception for all membership errors."""
79
110