diff options
| author | Barry Warsaw | 2007-10-31 17:38:51 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2007-10-31 17:38:51 -0400 |
| commit | f321d85d91a370294e771dbaa22493008d78dfdd (patch) | |
| tree | 8cf4c3e7cab70ccc9059f147ff1bf4b3bf150115 /Mailman/database/usermanager.py | |
| parent | 1ad73a52bb9d82ef3af1e34ad9ef66ac2eda2909 (diff) | |
| download | mailman-f321d85d91a370294e771dbaa22493008d78dfdd.tar.gz mailman-f321d85d91a370294e771dbaa22493008d78dfdd.tar.zst mailman-f321d85d91a370294e771dbaa22493008d78dfdd.zip | |
Diffstat (limited to 'Mailman/database/usermanager.py')
| -rw-r--r-- | Mailman/database/usermanager.py | 31 |
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 |
