Subscribe process needs to use bare JID to work with ejabberd

darcs-hash:20071030203025-86b55-31aed32e84cbad64f033639a3c7b5325ce2dc19a.gz
This commit is contained in:
David Rousselie
2007-10-30 21:30:25 +01:00
parent b1478f6804
commit a41bbfaf6f
2 changed files with 33 additions and 31 deletions

View File

@@ -153,16 +153,17 @@ class AccountManager(object):
those accounts from the DataBase""" those accounts from the DataBase"""
model.db_connect() model.db_connect()
result = [] result = []
for _account in account.get_accounts(user_jid): bare_user_jid = user_jid.bare()
for _account in account.get_accounts(bare_user_jid):
result.extend(self.remove_account(_account, user_jid, False)) result.extend(self.remove_account(_account, user_jid, False))
user = account.get_user(unicode(user_jid.bare())) user = account.get_user(unicode(bare_user_jid))
if user is not None: if user is not None:
user.destroySelf() user.destroySelf()
result.append(Presence(from_jid=self.component.jid, result.append(Presence(from_jid=self.component.jid,
to_jid=user_jid, to_jid=bare_user_jid,
stanza_type="unsubscribe")) stanza_type="unsubscribe"))
result.append(Presence(from_jid=self.component.jid, result.append(Presence(from_jid=self.component.jid,
to_jid=user_jid, to_jid=bare_user_jid,
stanza_type="unsubscribed")) stanza_type="unsubscribed"))
model.db_disconnect() model.db_disconnect()
return result return result
@@ -178,11 +179,12 @@ class AccountManager(object):
self.__logger.debug("Deleting account: " + str(_account)) self.__logger.debug("Deleting account: " + str(_account))
result = [] result = []
model.db_connect() model.db_connect()
bare_user_jid = user_jid.bare()
result.append(Presence(from_jid=_account.jid, result.append(Presence(from_jid=_account.jid,
to_jid=user_jid, to_jid=bare_user_jid,
stanza_type="unsubscribe")) stanza_type="unsubscribe"))
result.append(Presence(from_jid=_account.jid, result.append(Presence(from_jid=_account.jid,
to_jid=user_jid, to_jid=bare_user_jid,
stanza_type="unsubscribed")) stanza_type="unsubscribed"))
_account.destroySelf() _account.destroySelf()
if remove_user: if remove_user:
@@ -217,7 +219,7 @@ class AccountManager(object):
# component subscribe user presence when registering the first # component subscribe user presence when registering the first
# account # account
result.append(Presence(from_jid=self.component.jid, result.append(Presence(from_jid=self.component.jid,
to_jid=from_jid, to_jid=from_jid.bare(),
stanza_type="subscribe")) stanza_type="subscribe"))
welcome_message = self.component.get_welcome_message() welcome_message = self.component.get_welcome_message()
if welcome_message is not None: if welcome_message is not None:
@@ -233,7 +235,7 @@ class AccountManager(object):
subject=_account.get_new_message_subject(lang_class), subject=_account.get_new_message_subject(lang_class),
body=_account.get_new_message_body(lang_class))) body=_account.get_new_message_body(lang_class)))
result.append(Presence(from_jid=_account.jid, result.append(Presence(from_jid=_account.jid,
to_jid=from_jid, to_jid=from_jid.bare(),
stanza_type="subscribe")) stanza_type="subscribe"))
else: else:
result.append(Message(\ result.append(Message(\

View File

@@ -1108,7 +1108,7 @@ class JCLComponent_TestCase(JCLTestCase):
value="account1", value="account1",
field_type="text-single") field_type="text-single")
iq_set = Iq(stanza_type="set", iq_set = Iq(stanza_type="set",
from_jid="user1@test.com", from_jid="user1@test.com/res",
to_jid="jcl.test.com") to_jid="jcl.test.com")
query = iq_set.new_query("jabber:iq:register") query = iq_set.new_query("jabber:iq:register")
x_data.as_xml(query, None) x_data.as_xml(query, None)
@@ -1128,7 +1128,7 @@ class JCLComponent_TestCase(JCLTestCase):
self.assertTrue(isinstance(iq_result, Iq)) self.assertTrue(isinstance(iq_result, Iq))
self.assertEquals(iq_result.get_node().prop("type"), "result") self.assertEquals(iq_result.get_node().prop("type"), "result")
self.assertEquals(iq_result.get_from(), "jcl.test.com") self.assertEquals(iq_result.get_from(), "jcl.test.com")
self.assertEquals(iq_result.get_to(), "user1@test.com") self.assertEquals(iq_result.get_to(), "user1@test.com/res")
presence_component = stanza_sent[1] presence_component = stanza_sent[1]
self.assertTrue(isinstance(presence_component, Presence)) self.assertTrue(isinstance(presence_component, Presence))
@@ -1140,7 +1140,7 @@ class JCLComponent_TestCase(JCLTestCase):
message = stanza_sent[2] message = stanza_sent[2]
self.assertTrue(isinstance(message, Message)) self.assertTrue(isinstance(message, Message))
self.assertEquals(message.get_from(), "jcl.test.com") self.assertEquals(message.get_from(), "jcl.test.com")
self.assertEquals(message.get_to(), "user1@test.com") self.assertEquals(message.get_to(), "user1@test.com/res")
self.assertEquals(message.get_subject(), self.assertEquals(message.get_subject(),
_account.get_new_message_subject(Lang.en)) _account.get_new_message_subject(Lang.en))
self.assertEquals(message.get_body(), self.assertEquals(message.get_body(),
@@ -1169,7 +1169,7 @@ class JCLComponent_TestCase(JCLTestCase):
value="account1", value="account1",
field_type="text-single") field_type="text-single")
iq_set = Iq(stanza_type="set", iq_set = Iq(stanza_type="set",
from_jid="user1@test.com", from_jid="user1@test.com/res",
to_jid="jcl.test.com") to_jid="jcl.test.com")
query = iq_set.new_query("jabber:iq:register") query = iq_set.new_query("jabber:iq:register")
x_data.as_xml(query, None) x_data.as_xml(query, None)
@@ -1189,7 +1189,7 @@ class JCLComponent_TestCase(JCLTestCase):
self.assertTrue(isinstance(iq_result, Iq)) self.assertTrue(isinstance(iq_result, Iq))
self.assertEquals(iq_result.get_node().prop("type"), "result") self.assertEquals(iq_result.get_node().prop("type"), "result")
self.assertEquals(iq_result.get_from(), "jcl.test.com") self.assertEquals(iq_result.get_from(), "jcl.test.com")
self.assertEquals(iq_result.get_to(), "user1@test.com") self.assertEquals(iq_result.get_to(), "user1@test.com/res")
presence_component = stanza_sent[1] presence_component = stanza_sent[1]
self.assertTrue(isinstance(presence_component, Presence)) self.assertTrue(isinstance(presence_component, Presence))
@@ -1201,7 +1201,7 @@ class JCLComponent_TestCase(JCLTestCase):
message = stanza_sent[2] message = stanza_sent[2]
self.assertTrue(isinstance(message, Message)) self.assertTrue(isinstance(message, Message))
self.assertEquals(message.get_from(), "jcl.test.com") self.assertEquals(message.get_from(), "jcl.test.com")
self.assertEquals(message.get_to(), "user1@test.com") self.assertEquals(message.get_to(), "user1@test.com/res")
self.assertEquals(message.get_subject(), self.assertEquals(message.get_subject(),
Lang.en.welcome_message_subject) Lang.en.welcome_message_subject)
self.assertEquals(message.get_body(), self.assertEquals(message.get_body(),
@@ -1210,7 +1210,7 @@ class JCLComponent_TestCase(JCLTestCase):
message = stanza_sent[3] message = stanza_sent[3]
self.assertTrue(isinstance(message, Message)) self.assertTrue(isinstance(message, Message))
self.assertEquals(message.get_from(), "jcl.test.com") self.assertEquals(message.get_from(), "jcl.test.com")
self.assertEquals(message.get_to(), "user1@test.com") self.assertEquals(message.get_to(), "user1@test.com/res")
self.assertEquals(message.get_subject(), self.assertEquals(message.get_subject(),
_account.get_new_message_subject(Lang.en)) _account.get_new_message_subject(Lang.en))
self.assertEquals(message.get_body(), self.assertEquals(message.get_body(),
@@ -1233,7 +1233,7 @@ class JCLComponent_TestCase(JCLTestCase):
value="account1", value="account1",
field_type="text-single") field_type="text-single")
iq_set = Iq(stanza_type="set", iq_set = Iq(stanza_type="set",
from_jid="user1@test.com", from_jid="user1@test.com/res",
to_jid="jcl.test.com/Example2") to_jid="jcl.test.com/Example2")
query = iq_set.new_query("jabber:iq:register") query = iq_set.new_query("jabber:iq:register")
x_data.as_xml(query, None) x_data.as_xml(query, None)
@@ -1253,7 +1253,7 @@ class JCLComponent_TestCase(JCLTestCase):
self.assertTrue(isinstance(iq_result, Iq)) self.assertTrue(isinstance(iq_result, Iq))
self.assertEquals(iq_result.get_node().prop("type"), "result") self.assertEquals(iq_result.get_node().prop("type"), "result")
self.assertEquals(iq_result.get_from(), "jcl.test.com/Example2") self.assertEquals(iq_result.get_from(), "jcl.test.com/Example2")
self.assertEquals(iq_result.get_to(), "user1@test.com") self.assertEquals(iq_result.get_to(), "user1@test.com/res")
presence_component = stanza_sent[1] presence_component = stanza_sent[1]
self.assertTrue(isinstance(presence_component, Presence)) self.assertTrue(isinstance(presence_component, Presence))
@@ -1265,7 +1265,7 @@ class JCLComponent_TestCase(JCLTestCase):
message = stanza_sent[2] message = stanza_sent[2]
self.assertTrue(isinstance(message, Message)) self.assertTrue(isinstance(message, Message))
self.assertEquals(message.get_from(), "jcl.test.com") self.assertEquals(message.get_from(), "jcl.test.com")
self.assertEquals(message.get_to(), "user1@test.com") self.assertEquals(message.get_to(), "user1@test.com/res")
self.assertEquals(message.get_subject(), self.assertEquals(message.get_subject(),
_account.get_new_message_subject(Lang.en)) _account.get_new_message_subject(Lang.en))
self.assertEquals(message.get_body(), self.assertEquals(message.get_body(),
@@ -1364,7 +1364,7 @@ class JCLComponent_TestCase(JCLTestCase):
value="mylogin", value="mylogin",
field_type="text-single") field_type="text-single")
iq_set = Iq(stanza_type="set", iq_set = Iq(stanza_type="set",
from_jid="user1@test.com", from_jid="user1@test.com/res",
to_jid="jcl.test.com") to_jid="jcl.test.com")
query = iq_set.new_query("jabber:iq:register") query = iq_set.new_query("jabber:iq:register")
x_data.as_xml(query) x_data.as_xml(query)
@@ -1395,7 +1395,7 @@ class JCLComponent_TestCase(JCLTestCase):
value="mylogin1", value="mylogin1",
field_type="text-single") field_type="text-single")
iq_set = Iq(stanza_type="set", iq_set = Iq(stanza_type="set",
from_jid="user1@test.com", from_jid="user1@test.com/res",
to_jid="jcl.test.com") to_jid="jcl.test.com")
query = iq_set.new_query("jabber:iq:register") query = iq_set.new_query("jabber:iq:register")
x_data.as_xml(query) x_data.as_xml(query)
@@ -1422,7 +1422,7 @@ class JCLComponent_TestCase(JCLTestCase):
value="mylogin2", value="mylogin2",
field_type="text-single") field_type="text-single")
iq_set = Iq(stanza_type="set", iq_set = Iq(stanza_type="set",
from_jid="user1@test.com", from_jid="user1@test.com/res",
to_jid="jcl.test.com") to_jid="jcl.test.com")
query = iq_set.new_query("jabber:iq:register") query = iq_set.new_query("jabber:iq:register")
x_data.as_xml(query) x_data.as_xml(query)
@@ -1448,9 +1448,9 @@ class JCLComponent_TestCase(JCLTestCase):
self.comp.stream = MockStream() self.comp.stream = MockStream()
self.comp.stream_class = MockStream self.comp.stream_class = MockStream
x_data = Form("submit") x_data = Form("submit")
iq_set = Iq(stanza_type = "set", \ iq_set = Iq(stanza_type="set",
from_jid = "user1@test.com", \ from_jid="user1@test.com/res",
to_jid = "jcl.test.com") to_jid="jcl.test.com")
query = iq_set.new_query("jabber:iq:register") query = iq_set.new_query("jabber:iq:register")
x_data.as_xml(query) x_data.as_xml(query)
self.comp.handle_set_register(iq_set) self.comp.handle_set_register(iq_set)
@@ -1465,9 +1465,9 @@ class JCLComponent_TestCase(JCLTestCase):
self.assertTrue(isinstance(stanza_sent[0], Iq)) self.assertTrue(isinstance(stanza_sent[0], Iq))
self.assertEquals(stanza_sent[0].get_node().prop("type"), "error") self.assertEquals(stanza_sent[0].get_node().prop("type"), "error")
stanza_error = stanza_sent[0].get_error() stanza_error = stanza_sent[0].get_error()
self.assertEquals(stanza_error.get_condition().name, \ self.assertEquals(stanza_error.get_condition().name,
"not-acceptable") "not-acceptable")
self.assertEquals(stanza_error.get_text(), \ self.assertEquals(stanza_error.get_text(),
Lang.en.mandatory_field % ("name")) Lang.en.mandatory_field % ("name"))
def test_handle_set_register_new_field_mandatory(self): def test_handle_set_register_new_field_mandatory(self):
@@ -1479,7 +1479,7 @@ class JCLComponent_TestCase(JCLTestCase):
value="account1", value="account1",
field_type="text-single") field_type="text-single")
iq_set = Iq(stanza_type="set", iq_set = Iq(stanza_type="set",
from_jid="user1@test.com", from_jid="user1@test.com/res",
to_jid="jcl.test.com") to_jid="jcl.test.com")
query = iq_set.new_query("jabber:iq:register") query = iq_set.new_query("jabber:iq:register")
x_data.as_xml(query) x_data.as_xml(query)
@@ -1543,7 +1543,7 @@ class JCLComponent_TestCase(JCLTestCase):
value=43, value=43,
field_type="text-single") field_type="text-single")
iq_set = Iq(stanza_type="set", iq_set = Iq(stanza_type="set",
from_jid="user1@test.com", from_jid="user1@test.com/res",
to_jid="account1@jcl.test.com") to_jid="account1@jcl.test.com")
query = iq_set.new_query("jabber:iq:register") query = iq_set.new_query("jabber:iq:register")
x_data.as_xml(query) x_data.as_xml(query)
@@ -1569,12 +1569,12 @@ class JCLComponent_TestCase(JCLTestCase):
self.assertTrue(isinstance(iq_result, Iq)) self.assertTrue(isinstance(iq_result, Iq))
self.assertEquals(iq_result.get_node().prop("type"), "result") self.assertEquals(iq_result.get_node().prop("type"), "result")
self.assertEquals(iq_result.get_from(), "account1@jcl.test.com") self.assertEquals(iq_result.get_from(), "account1@jcl.test.com")
self.assertEquals(iq_result.get_to(), "user1@test.com") self.assertEquals(iq_result.get_to(), "user1@test.com/res")
message = stanza_sent[1] message = stanza_sent[1]
self.assertTrue(isinstance(message, Message)) self.assertTrue(isinstance(message, Message))
self.assertEquals(message.get_from(), "jcl.test.com") self.assertEquals(message.get_from(), "jcl.test.com")
self.assertEquals(message.get_to(), "user1@test.com") self.assertEquals(message.get_to(), "user1@test.com/res")
self.assertEquals(message.get_subject(), \ self.assertEquals(message.get_subject(), \
_account.get_update_message_subject(Lang.en)) _account.get_update_message_subject(Lang.en))
self.assertEquals(message.get_body(), \ self.assertEquals(message.get_body(), \
@@ -1596,7 +1596,7 @@ class JCLComponent_TestCase(JCLTestCase):
jid="account1@jcl.test.com") jid="account1@jcl.test.com")
model.db_disconnect() model.db_disconnect()
iq_set = Iq(stanza_type="set", iq_set = Iq(stanza_type="set",
from_jid="user1@test.com", from_jid="user1@test.com/res",
to_jid="jcl.test.com") to_jid="jcl.test.com")
query = iq_set.new_query("jabber:iq:register") query = iq_set.new_query("jabber:iq:register")
query.newChild(None, "remove", None) query.newChild(None, "remove", None)