diff options
| author | Barry Warsaw | 2007-06-15 01:13:47 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2007-06-15 01:13:47 -0400 |
| commit | 3cc1d23d115c87cb0d468df95ba2ff4ca9624d18 (patch) | |
| tree | c20749734a7de50ed67cd7b78a409d2a33b2a441 /Mailman/database/model/user.py | |
| parent | 54316840a07fb9af9cdb0f5017680b63ccc8e986 (diff) | |
| parent | 067f871fdcaf51a0de8a1468006d3bad2e3a9a24 (diff) | |
| download | mailman-3cc1d23d115c87cb0d468df95ba2ff4ca9624d18.tar.gz mailman-3cc1d23d115c87cb0d468df95ba2ff4ca9624d18.tar.zst mailman-3cc1d23d115c87cb0d468df95ba2ff4ca9624d18.zip | |
Diffstat (limited to 'Mailman/database/model/user.py')
| -rw-r--r-- | Mailman/database/model/user.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Mailman/database/model/user.py b/Mailman/database/model/user.py index 45fcbfdd3..9419f181d 100644 --- a/Mailman/database/model/user.py +++ b/Mailman/database/model/user.py @@ -21,6 +21,7 @@ from zope.interface import implements from Mailman import Errors from Mailman.database.model import Address +from Mailman.database.model import Preferences from Mailman.interfaces import IUser ADDRESS_KIND = 'Mailman.database.model.address.Address' @@ -57,3 +58,17 @@ class User(Entity): def controls(self, address): found = Address.get_by(address=address) return bool(found and found.user is self) + + def register(self, address, real_name=None): + # First, see if the address already exists + addrobj = Address.get_by(address=address) + if addrobj is None: + if real_name is None: + real_name = '' + addrobj = Address(address=address, real_name=real_name) + # Link the address to the user if it is not already linked. + if addrobj.user is not None: + raise Errors.AddressAlreadyLinkedError(addrobj) + addrobj.user = self + self.addresses.append(addrobj) + return addrobj |
