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 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

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
from jcl.jabber import Handler
from jcl.jabber.component import JCLComponent
from jcl.jabber.component import JCLComponent, AccountManager
from jcl.lang import Lang
import jcl.model as model
from jcl.model import account
@@ -51,7 +51,8 @@ class FeederComponent(JCLComponent):
port,
config,
config_file,
lang = Lang()):
lang=Lang(),
account_manager_class=AccountManager):
JCLComponent.__init__(self,
jid,
secret,
@@ -59,7 +60,8 @@ class FeederComponent(JCLComponent):
port,
config,
config_file,
lang=lang)
lang=lang,
account_manager_class=account_manager_class)
# Define default feeder and sender, can be override
self.handler = FeederHandler(Feeder(self), Sender(self))
self.check_interval = 1

View File

@@ -204,18 +204,21 @@ class Account(InheritableSQLObject):
"""Return localized message body for existing account"""
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
model.db_connect()
accounts = account_class.select(\
AND(AND(Account.q.name == name,
Account.q.userID == User.q.id),
User.q.jid == unicode(bare_user_jid)))
accounts = account_class.select(filter)
if accounts.count() > 0:
result = accounts[0]
model.db_disconnect()
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):
if filter is not None:
filter = AND(AND(Account.q.userID == User.q.id,