summaryrefslogtreecommitdiff
path: root/Mailman/database/model/user.py
diff options
context:
space:
mode:
authorBarry Warsaw2007-12-08 11:51:36 -0500
committerBarry Warsaw2007-12-08 11:51:36 -0500
commit5495accf05d77e1c4ff2855f5e42c2e56f51e45d (patch)
treee4d3ae8e89bf380137183fd045c41aae983f1e15 /Mailman/database/model/user.py
parent8ccaa3f611fd822d916abf17ccf308d5ebbe9383 (diff)
downloadmailman-5495accf05d77e1c4ff2855f5e42c2e56f51e45d.tar.gz
mailman-5495accf05d77e1c4ff2855f5e42c2e56f51e45d.tar.zst
mailman-5495accf05d77e1c4ff2855f5e42c2e56f51e45d.zip
Diffstat (limited to 'Mailman/database/model/user.py')
-rw-r--r--Mailman/database/model/user.py74
1 files changed, 0 insertions, 74 deletions
diff --git a/Mailman/database/model/user.py b/Mailman/database/model/user.py
deleted file mode 100644
index 84b5a4595..000000000
--- a/Mailman/database/model/user.py
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright (C) 2007 by the Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-# USA.
-
-from email.utils import formataddr
-from storm.locals import *
-from zope.interface import implements
-
-from Mailman import Errors
-from Mailman.configuration import config
-from Mailman.database import Model
-from Mailman.database.model import Address
-from Mailman.database.model import Preferences
-from Mailman.interfaces import IUser
-
-
-
-class User(Model):
- implements(IUser)
-
- id = Int(primary=True)
- real_name = Unicode()
- password = Unicode()
-
- addresses = ReferenceSet(id, 'Address.user_id')
- preferences_id = Int()
- preferences = Reference(preferences_id, 'Preferences.id')
-
- def __repr__(self):
- return '<User "%s" at %#x>' % (self.real_name, id(self))
-
- def link(self, address):
- if address.user is not None:
- raise Errors.AddressAlreadyLinkedError(address)
- address.user = self
-
- def unlink(self, address):
- if address.user is None:
- raise Errors.AddressNotLinkedError(address)
- address.user = None
-
- def controls(self, address):
- found = config.db.store.find(Address, address=address)
- if found.count() == 0:
- return False
- assert found.count() == 1, 'Unexpected count'
- return found[0].user is self
-
- def register(self, address, real_name=None):
- # First, see if the address already exists
- addrobj = config.db.store.find(Address, address=address).one()
- if addrobj is None:
- if real_name is None:
- real_name = u''
- addrobj = Address(address=address, real_name=real_name)
- addrobj.preferences = Preferences()
- # 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
- return addrobj