summaryrefslogtreecommitdiff
path: root/Mailman/database/usermanager.py
diff options
context:
space:
mode:
authorBarry Warsaw2007-10-31 17:38:51 -0400
committerBarry Warsaw2007-10-31 17:38:51 -0400
commitf321d85d91a370294e771dbaa22493008d78dfdd (patch)
tree8cf4c3e7cab70ccc9059f147ff1bf4b3bf150115 /Mailman/database/usermanager.py
parent1ad73a52bb9d82ef3af1e34ad9ef66ac2eda2909 (diff)
downloadmailman-f321d85d91a370294e771dbaa22493008d78dfdd.tar.gz
mailman-f321d85d91a370294e771dbaa22493008d78dfdd.tar.zst
mailman-f321d85d91a370294e771dbaa22493008d78dfdd.zip
Diffstat (limited to 'Mailman/database/usermanager.py')
-rw-r--r--Mailman/database/usermanager.py31
1 files changed, 23 insertions, 8 deletions
diff --git a/Mailman/database/usermanager.py b/Mailman/database/usermanager.py
index 1958080fd..6bc2ed53d 100644
--- a/Mailman/database/usermanager.py
+++ b/Mailman/database/usermanager.py
@@ -36,7 +36,7 @@ class UserManager(object):
def create_user(self, address=None, real_name=None):
user = User()
- user.real_name = (real_name if real_name is not None else '')
+ user.real_name = ('' if real_name is None else real_name)
if address:
addrobj = Address(address, user.real_name)
addrobj.preferences = Preferences()
@@ -49,19 +49,28 @@ class UserManager(object):
@property
def users(self):
- for user in User.select():
+ for user in User.query.filter_by().all():
yield user
def get_user(self, address):
- found = Address.get_by(address=address.lower())
- return found and found.user
+ addresses = Address.query.filter_by(address=address.lower())
+ if addresses.count() == 0:
+ return None
+ elif addresses.count() == 1:
+ return addresses[0].user
+ else:
+ raise AssertionError('Unexpected query count')
def create_address(self, address, real_name=None):
- found = Address.get_by(address=address.lower())
- if found:
+ addresses = Address.query.filter_by(address=address.lower())
+ if addresses.count() == 1:
+ found = addresses[0]
raise Errors.ExistingAddressError(found.original_address)
+ assert addresses.count() == 0, 'Unexpected results'
if real_name is None:
real_name = ''
+ # It's okay not to lower case the 'address' argument because the
+ # constructor will do the right thing.
address = Address(address, real_name)
address.preferences = Preferences()
return address
@@ -74,9 +83,15 @@ class UserManager(object):
address.delete()
def get_address(self, address):
- return Address.get_by(address=address.lower())
+ addresses = Address.query.filter_by(address=address.lower())
+ if addresses.count() == 0:
+ return None
+ elif addresses.count() == 1:
+ return addresses[0]
+ else:
+ raise AssertionError('Unexpected query count')
@property
def addresses(self):
- for address in Address.select():
+ for address in Address.query.filter_by().all():
yield address