diff options
| author | Barry Warsaw | 2011-04-01 18:56:17 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2011-04-01 18:56:17 -0400 |
| commit | cd18f50624f33a9556492168933d5fe088d51a04 (patch) | |
| tree | cf9f9176e040f8af5b39240c0cd97c2b48c29952 /src/mailman/model/user.py | |
| parent | 477d81701e0e3ef166b786de9ec9bc1f148eaffe (diff) | |
| parent | 33ad44bc97f08df71f227f6f2a006e770a75c353 (diff) | |
| download | mailman-cd18f50624f33a9556492168933d5fe088d51a04.tar.gz mailman-cd18f50624f33a9556492168933d5fe088d51a04.tar.zst mailman-cd18f50624f33a9556492168933d5fe088d51a04.zip | |
Diffstat (limited to 'src/mailman/model/user.py')
| -rw-r--r-- | src/mailman/model/user.py | 18 |
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: |
