From 1dd71d72928ea18101c6e64c7ecee2bb286968ac Mon Sep 17 00:00:00 2001 From: tonio Date: Tue, 8 Jun 2010 15:48:49 +0200 Subject: [PATCH] Oups... --- extensions/webmail/imap_listing.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/extensions/webmail/imap_listing.py b/extensions/webmail/imap_listing.py index df18e3b63..a85b964e2 100644 --- a/extensions/webmail/imap_listing.py +++ b/extensions/webmail/imap_listing.py @@ -123,15 +123,19 @@ class ConnectionsManager(type): cls.instances = {} def __call__(cls, *args, **kwargs): + key = None if kwargs.has_key("user"): key = kwargs["user"] - if not cls.instances.has_key(key): - cls.instances[key] = None - if cls.instances[kwargs["user"]] is None: - cls.instances[kwargs["user"]] = \ - super(ConnectionsManager, cls).__call__(*args, **kwargs) - return cls.instances[kwargs["user"]] - return None + elif len(args): + key = args[0].user.username + if key is None: + return None + if not cls.instances.has_key(key): + cls.instances[key] = None + if cls.instances[key] is None: + cls.instances[key] = \ + super(ConnectionsManager, cls).__call__(*args, **kwargs) + return cls.instances[key] class IMAPconnector(object): __metaclass__ = ConnectionsManager