def filter(self, stanza, lang_class): bare_from_jid = unicode(stanza.get_from().bare()) accounts = account.get_accounts(\ bare_from_jid, account_class=AbstractSMTPAccount, filter=(AbstractSMTPAccount.q.default_account == True)) if accounts.count() != 1: self.__logger.error("No default account found for user " + str(bare_from_jid)) if accounts.count() == 0: accounts = account.get_accounts(bare_from_jid, AbstractSMTPAccount) return accounts
def default_account_default_func(bare_from_jid): accounts = account.get_accounts(bare_from_jid, AbstractSMTPAccount, (AbstractSMTPAccount.q.default_account == True)) if accounts.count() == 0: return True else: return False
def get_accounts_root_filter(self, stanza, lang_class, node=None): """Filter stanza sent to root node""" to_jid = stanza.get_to() if to_jid.resource is None and to_jid.node is None and node is None: return account.get_accounts(unicode(stanza.get_from().bare())) else: return None
def filter(self, stanza, lang_class): """Return empty array if JID match '.*%.*@componentJID'""" node = stanza.get_to().node if node is not None and self.dest_jid_regexp.match(node): bare_from_jid = unicode(stanza.get_from().bare()) accounts = account.get_accounts(bare_from_jid, SMTPAccount) if accounts.count() == 0: raise NoAccountError() else: default_account = accounts.newClause(\ SMTPAccount.q.default_account == True) if default_account.count() > 0: return default_account else: return accounts return None
def test_get_accounts(self): user1 = User(jid="*****@*****.**") Account(user=user1, name="account11", jid="*****@*****.**") Account(user=user1, name="account12", jid="*****@*****.**") Account(user=User(jid="*****@*****.**"), name="account11", jid="*****@*****.**") accounts = account.get_accounts("*****@*****.**") i = 0 for _account in accounts: i += 1 self.assertEquals(_account.user.jid, "*****@*****.**") self.assertEquals(i, 2)
def default_account_post_func(value, default_func, bare_from_jid): accounts = account.get_accounts(bare_from_jid, AbstractSMTPAccount, (AbstractSMTPAccount.q.default_account == True)) already_default_account = (accounts.count() != 0) if isinstance(value, str) or isinstance(value, unicode): value = value.lower() bool_value = (value == "true" or value == "1") else: bool_value = value if bool_value: if already_default_account: for _account in accounts: _account.default_account = False return True else: if not already_default_account: return True else: return False