summaryrefslogtreecommitdiff
path: root/src/mailman/model/user.py
diff options
context:
space:
mode:
authorBarry Warsaw2011-04-01 18:51:29 -0400
committerBarry Warsaw2011-04-01 18:51:29 -0400
commit33ad44bc97f08df71f227f6f2a006e770a75c353 (patch)
treeef369d5dc968372d824cbe50421a1f5331461149 /src/mailman/model/user.py
parentdee26f391da59c68a23f8fb960dff9ebd879e916 (diff)
downloadmailman-33ad44bc97f08df71f227f6f2a006e770a75c353.tar.gz
mailman-33ad44bc97f08df71f227f6f2a006e770a75c353.tar.zst
mailman-33ad44bc97f08df71f227f6f2a006e770a75c353.zip
Diffstat (limited to 'src/mailman/model/user.py')
-rw-r--r--src/mailman/model/user.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/mailman/model/user.py b/src/mailman/model/user.py
index f037bdd48..05ce356ca 100644
--- a/src/mailman/model/user.py
+++ b/src/mailman/model/user.py
@@ -24,7 +24,7 @@ __all__ = [
'User',
]
-from storm.locals import Int, Reference, ReferenceSet, Unicode
+from storm.locals import DateTime, Int, Reference, ReferenceSet, Unicode
from zope.interface import implements
from mailman.config import config
@@ -35,6 +35,8 @@ from mailman.interfaces.user import IUser
from mailman.model.address import Address
from mailman.model.preferences import Preferences
from mailman.model.roster import Memberships
+from mailman.utilities.datetime import factory as date_factory
+from mailman.utilities.uid import factory as uid_factory
@@ -47,11 +49,20 @@ class User(Model):
real_name = Unicode()
password = Unicode()
_user_id = Unicode()
+ _created_on = DateTime()
addresses = ReferenceSet(id, 'Address.user_id')
preferences_id = Int()
preferences = Reference(preferences_id, 'Preferences.id')
+ def __init__(self, real_name=None, preferences=None):
+ super(User, self).__init__()
+ self._created_on = date_factory.now()
+ self._user_id = uid_factory.new_uid()
+ self.real_name = ('' if real_name is None else real_name)
+ self.preferences = preferences
+ config.db.store.add(self)
+
def __repr__(self):
return '<User "{0.real_name}" ({0.user_id}) at {1:#x}>'.format(
self, id(self))
@@ -61,6 +72,11 @@ class User(Model):
"""See `IUser`."""
return self._user_id
+ @property
+ def created_on(self):
+ """See `IUser`."""
+ return self._created_on
+
def link(self, address):
"""See `IUser`."""
if address.user is not None: