diff options
| author | Barry Warsaw | 2007-06-15 00:50:40 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2007-06-15 00:50:40 -0400 |
| commit | 067f871fdcaf51a0de8a1468006d3bad2e3a9a24 (patch) | |
| tree | 8404972f48ad55b4a2353c2f33369fb51351e500 /Mailman/database/model/user.py | |
| parent | 125f16ea72934e4dd18529a597b155c0aaca9ff6 (diff) | |
| download | mailman-067f871fdcaf51a0de8a1468006d3bad2e3a9a24.tar.gz mailman-067f871fdcaf51a0de8a1468006d3bad2e3a9a24.tar.zst mailman-067f871fdcaf51a0de8a1468006d3bad2e3a9a24.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 |
