diff options
Diffstat (limited to 'src/mailman/model/usermanager.py')
| -rw-r--r-- | src/mailman/model/usermanager.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mailman/model/usermanager.py b/src/mailman/model/usermanager.py index 24b3a355e..6f5d5b774 100644 --- a/src/mailman/model/usermanager.py +++ b/src/mailman/model/usermanager.py @@ -19,7 +19,9 @@ from mailman.database.transaction import dbconnection from mailman.interfaces.address import ExistingAddressError -from mailman.interfaces.usermanager import IUserManager +from mailman.interfaces.usermanager import ( + AddressCreatedEvent, AddressCreatingEvent, AddressDeletedEvent, + AddressDeletingEvent, IUserManager) from mailman.model.address import Address from mailman.model.autorespond import AutoResponseRecord from mailman.model.digests import OneLastDigest @@ -27,6 +29,7 @@ from mailman.model.member import Member from mailman.model.preferences import Preferences from mailman.model.user import User from public import public +from zope.event import notify from zope.interface import implementer @@ -104,6 +107,7 @@ class UserManager: @dbconnection def create_address(self, store, email, display_name=None): """See `IUserManager`.""" + notify(AddressCreatingEvent(email)) addresses = store.query(Address).filter(Address.email == email.lower()) if addresses.count() == 1: found = addresses[0] @@ -116,6 +120,7 @@ class UserManager: address = Address(email, display_name) address.preferences = Preferences() store.add(address) + notify(AddressCreatedEvent(address)) return address @dbconnection @@ -123,6 +128,8 @@ class UserManager: """See `IUserManager`.""" # If there's a user controlling this address, it has to first be # unlinked before the address can be deleted. + email = address.email + notify(AddressDeletingEvent(address)) if address.user: address.user.unlink(address) # Remove memberships. @@ -134,6 +141,7 @@ class UserManager: store.query(OneLastDigest).filter_by(address=address).delete() # Now delete the address. store.delete(address) + notify(AddressDeletedEvent(email)) @dbconnection def get_address(self, store, email): |
