summaryrefslogtreecommitdiff
path: root/Mailman/database/usermanager.py
diff options
context:
space:
mode:
authorBarry Warsaw2007-11-06 18:16:22 -0500
committerBarry Warsaw2007-11-06 18:16:22 -0500
commitd6377c92857c513faf484ef9a91a6b00da789d4b (patch)
treec00600e52ec7ad327c947bc9a756e2694478a4d6 /Mailman/database/usermanager.py
parent46f480dfaa6286ff8950af817de1c35910b37e16 (diff)
downloadmailman-d6377c92857c513faf484ef9a91a6b00da789d4b.tar.gz
mailman-d6377c92857c513faf484ef9a91a6b00da789d4b.tar.zst
mailman-d6377c92857c513faf484ef9a91a6b00da789d4b.zip
Fix two doctests: ack-headers and acknowledgment.
This hacks around an apparent bug in the email package where if you parse a unicode message string, you still end up getting 8-bit strings out of the headers, and probably payloads. The hack is to override Mailman.Message.Message.__getitem__() to force the header value returned to a Unicode. It must be ASCII but this is required anyway by RFC 2822. It's not perfect, but it lets us get farther without forcing a detour into fixing the email package. Other changes: - Fix the Address table's references, and also update the subscribe() query. - Fix the Member table's references and add a __init__(). - Fix Roster's get_member() query. - Fix the Enum class's variable_class attribute. - UserManager.create_user() has to use Unicodes for real_name.
Diffstat (limited to 'Mailman/database/usermanager.py')
-rw-r--r--Mailman/database/usermanager.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/Mailman/database/usermanager.py b/Mailman/database/usermanager.py
index 794b1cda1..6fecfcc8b 100644
--- a/Mailman/database/usermanager.py
+++ b/Mailman/database/usermanager.py
@@ -33,13 +33,16 @@ class UserManager(object):
implements(IUserManager)
def create_user(self, address=None, real_name=None):
+ # Avoid circular imports.
+ from Mailman.database.model import Address, Preferences, User
user = User()
- user.real_name = ('' if real_name is None else real_name)
+ user.real_name = (u'' if real_name is None else real_name)
if address:
addrobj = Address(address, user.real_name)
addrobj.preferences = Preferences()
user.link(addrobj)
user.preferences = Preferences()
+ config.db.store.add(user)
return user
def delete_user(self, user):