make AccountManager configurable in Component constructor

darcs-hash:20071011203937-86b55-e5a939ee0bfc2d63ee44c9e6793b7fecbb922ee6.gz
This commit is contained in:
David Rousselie
2007-10-11 22:39:37 +02:00
parent 613f87b4b9
commit 73bf2ff246
4 changed files with 519 additions and 513 deletions

View File

@@ -71,5 +71,5 @@ def replace_handlers(handlers, old_handler_type, new_handler):
""" """
for handler_group in handlers: for handler_group in handlers:
for i in xrange(len(handler_group)): for i in xrange(len(handler_group)):
if isinstance(handler_group[i], old_handler_type): if handler_group[i].__class__.__name__ == old_handler_type.__name__:
handler_group[i] = new_handler handler_group[i] = new_handler

File diff suppressed because it is too large Load Diff

View File

@@ -29,7 +29,7 @@ __revision__ = "$Id: feeder.py,v 1.3 2005/09/18 20:24:07 dax Exp $"
import logging import logging
from jcl.jabber import Handler from jcl.jabber import Handler
from jcl.jabber.component import JCLComponent from jcl.jabber.component import JCLComponent, AccountManager
from jcl.lang import Lang from jcl.lang import Lang
import jcl.model as model import jcl.model as model
from jcl.model import account from jcl.model import account
@@ -51,7 +51,8 @@ class FeederComponent(JCLComponent):
port, port,
config, config,
config_file, config_file,
lang = Lang()): lang=Lang(),
account_manager_class=AccountManager):
JCLComponent.__init__(self, JCLComponent.__init__(self,
jid, jid,
secret, secret,
@@ -59,7 +60,8 @@ class FeederComponent(JCLComponent):
port, port,
config, config,
config_file, config_file,
lang=lang) lang=lang,
account_manager_class=account_manager_class)
# Define default feeder and sender, can be override # Define default feeder and sender, can be override
self.handler = FeederHandler(Feeder(self), Sender(self)) self.handler = FeederHandler(Feeder(self), Sender(self))
self.check_interval = 1 self.check_interval = 1

View File

@@ -204,18 +204,21 @@ class Account(InheritableSQLObject):
"""Return localized message body for existing account""" """Return localized message body for existing account"""
return lang_class.update_account_message_body return lang_class.update_account_message_body
def get_account(bare_user_jid, name, account_class=Account): def get_account_filter(filter, account_class=Account):
result = None result = None
model.db_connect() model.db_connect()
accounts = account_class.select(\ accounts = account_class.select(filter)
AND(AND(Account.q.name == name,
Account.q.userID == User.q.id),
User.q.jid == unicode(bare_user_jid)))
if accounts.count() > 0: if accounts.count() > 0:
result = accounts[0] result = accounts[0]
model.db_disconnect() model.db_disconnect()
return result return result
def get_account(bare_user_jid, name, account_class=Account):
real_filter = AND(AND(Account.q.name == name,
Account.q.userID == User.q.id),
User.q.jid == unicode(bare_user_jid))
return get_account_filter(real_filter, account_class)
def get_accounts(bare_user_jid, account_class=Account, filter=None): def get_accounts(bare_user_jid, account_class=Account, filter=None):
if filter is not None: if filter is not None:
filter = AND(AND(Account.q.userID == User.q.id, filter = AND(AND(Account.q.userID == User.q.id,