summaryrefslogtreecommitdiff
path: root/Mailman/database/model/user.py
diff options
context:
space:
mode:
authorBarry Warsaw2007-06-15 01:13:47 -0400
committerBarry Warsaw2007-06-15 01:13:47 -0400
commit3cc1d23d115c87cb0d468df95ba2ff4ca9624d18 (patch)
treec20749734a7de50ed67cd7b78a409d2a33b2a441 /Mailman/database/model/user.py
parent54316840a07fb9af9cdb0f5017680b63ccc8e986 (diff)
parent067f871fdcaf51a0de8a1468006d3bad2e3a9a24 (diff)
downloadmailman-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.py15
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