From a41bbfaf6ff938ab04e94d4959493d5a2e4c123e Mon Sep 17 00:00:00 2001 From: David Rousselie Date: Tue, 30 Oct 2007 21:30:25 +0100 Subject: [PATCH] Subscribe process needs to use bare JID to work with ejabberd darcs-hash:20071030203025-86b55-31aed32e84cbad64f033639a3c7b5325ce2dc19a.gz --- src/jcl/jabber/component.py | 18 ++++++------ src/jcl/jabber/tests/component.py | 46 +++++++++++++++---------------- 2 files changed, 33 insertions(+), 31 deletions(-) diff --git a/src/jcl/jabber/component.py b/src/jcl/jabber/component.py index ade01d4..a9c9275 100644 --- a/src/jcl/jabber/component.py +++ b/src/jcl/jabber/component.py @@ -153,16 +153,17 @@ class AccountManager(object): those accounts from the DataBase""" model.db_connect() 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)) - user = account.get_user(unicode(user_jid.bare())) + user = account.get_user(unicode(bare_user_jid)) if user is not None: user.destroySelf() result.append(Presence(from_jid=self.component.jid, - to_jid=user_jid, + to_jid=bare_user_jid, stanza_type="unsubscribe")) result.append(Presence(from_jid=self.component.jid, - to_jid=user_jid, + to_jid=bare_user_jid, stanza_type="unsubscribed")) model.db_disconnect() return result @@ -178,11 +179,12 @@ class AccountManager(object): self.__logger.debug("Deleting account: " + str(_account)) result = [] model.db_connect() + bare_user_jid = user_jid.bare() result.append(Presence(from_jid=_account.jid, - to_jid=user_jid, + to_jid=bare_user_jid, stanza_type="unsubscribe")) result.append(Presence(from_jid=_account.jid, - to_jid=user_jid, + to_jid=bare_user_jid, stanza_type="unsubscribed")) _account.destroySelf() if remove_user: @@ -217,7 +219,7 @@ class AccountManager(object): # component subscribe user presence when registering the first # account result.append(Presence(from_jid=self.component.jid, - to_jid=from_jid, + to_jid=from_jid.bare(), stanza_type="subscribe")) welcome_message = self.component.get_welcome_message() if welcome_message is not None: @@ -233,7 +235,7 @@ class AccountManager(object): subject=_account.get_new_message_subject(lang_class), body=_account.get_new_message_body(lang_class))) result.append(Presence(from_jid=_account.jid, - to_jid=from_jid, + to_jid=from_jid.bare(), stanza_type="subscribe")) else: result.append(Message(\ diff --git a/src/jcl/jabber/tests/component.py b/src/jcl/jabber/tests/component.py index eaf0410..1ed86fc 100644 --- a/src/jcl/jabber/tests/component.py +++ b/src/jcl/jabber/tests/component.py @@ -1108,7 +1108,7 @@ class JCLComponent_TestCase(JCLTestCase): value="account1", field_type="text-single") iq_set = Iq(stanza_type="set", - from_jid="user1@test.com", + from_jid="user1@test.com/res", to_jid="jcl.test.com") query = iq_set.new_query("jabber:iq:register") x_data.as_xml(query, None) @@ -1128,7 +1128,7 @@ class JCLComponent_TestCase(JCLTestCase): self.assertTrue(isinstance(iq_result, Iq)) self.assertEquals(iq_result.get_node().prop("type"), "result") 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] self.assertTrue(isinstance(presence_component, Presence)) @@ -1140,7 +1140,7 @@ class JCLComponent_TestCase(JCLTestCase): message = stanza_sent[2] self.assertTrue(isinstance(message, Message)) 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(), _account.get_new_message_subject(Lang.en)) self.assertEquals(message.get_body(), @@ -1169,7 +1169,7 @@ class JCLComponent_TestCase(JCLTestCase): value="account1", field_type="text-single") iq_set = Iq(stanza_type="set", - from_jid="user1@test.com", + from_jid="user1@test.com/res", to_jid="jcl.test.com") query = iq_set.new_query("jabber:iq:register") x_data.as_xml(query, None) @@ -1189,7 +1189,7 @@ class JCLComponent_TestCase(JCLTestCase): self.assertTrue(isinstance(iq_result, Iq)) self.assertEquals(iq_result.get_node().prop("type"), "result") 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] self.assertTrue(isinstance(presence_component, Presence)) @@ -1201,7 +1201,7 @@ class JCLComponent_TestCase(JCLTestCase): message = stanza_sent[2] self.assertTrue(isinstance(message, Message)) 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(), Lang.en.welcome_message_subject) self.assertEquals(message.get_body(), @@ -1210,7 +1210,7 @@ class JCLComponent_TestCase(JCLTestCase): message = stanza_sent[3] self.assertTrue(isinstance(message, Message)) 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(), _account.get_new_message_subject(Lang.en)) self.assertEquals(message.get_body(), @@ -1233,7 +1233,7 @@ class JCLComponent_TestCase(JCLTestCase): value="account1", field_type="text-single") iq_set = Iq(stanza_type="set", - from_jid="user1@test.com", + from_jid="user1@test.com/res", to_jid="jcl.test.com/Example2") query = iq_set.new_query("jabber:iq:register") x_data.as_xml(query, None) @@ -1253,7 +1253,7 @@ class JCLComponent_TestCase(JCLTestCase): self.assertTrue(isinstance(iq_result, Iq)) self.assertEquals(iq_result.get_node().prop("type"), "result") 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] self.assertTrue(isinstance(presence_component, Presence)) @@ -1265,7 +1265,7 @@ class JCLComponent_TestCase(JCLTestCase): message = stanza_sent[2] self.assertTrue(isinstance(message, Message)) 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(), _account.get_new_message_subject(Lang.en)) self.assertEquals(message.get_body(), @@ -1364,7 +1364,7 @@ class JCLComponent_TestCase(JCLTestCase): value="mylogin", field_type="text-single") iq_set = Iq(stanza_type="set", - from_jid="user1@test.com", + from_jid="user1@test.com/res", to_jid="jcl.test.com") query = iq_set.new_query("jabber:iq:register") x_data.as_xml(query) @@ -1395,7 +1395,7 @@ class JCLComponent_TestCase(JCLTestCase): value="mylogin1", field_type="text-single") iq_set = Iq(stanza_type="set", - from_jid="user1@test.com", + from_jid="user1@test.com/res", to_jid="jcl.test.com") query = iq_set.new_query("jabber:iq:register") x_data.as_xml(query) @@ -1422,7 +1422,7 @@ class JCLComponent_TestCase(JCLTestCase): value="mylogin2", field_type="text-single") iq_set = Iq(stanza_type="set", - from_jid="user1@test.com", + from_jid="user1@test.com/res", to_jid="jcl.test.com") query = iq_set.new_query("jabber:iq:register") x_data.as_xml(query) @@ -1448,9 +1448,9 @@ class JCLComponent_TestCase(JCLTestCase): self.comp.stream = MockStream() self.comp.stream_class = MockStream x_data = Form("submit") - iq_set = Iq(stanza_type = "set", \ - from_jid = "user1@test.com", \ - to_jid = "jcl.test.com") + iq_set = Iq(stanza_type="set", + from_jid="user1@test.com/res", + to_jid="jcl.test.com") query = iq_set.new_query("jabber:iq:register") x_data.as_xml(query) self.comp.handle_set_register(iq_set) @@ -1465,9 +1465,9 @@ class JCLComponent_TestCase(JCLTestCase): self.assertTrue(isinstance(stanza_sent[0], Iq)) self.assertEquals(stanza_sent[0].get_node().prop("type"), "error") stanza_error = stanza_sent[0].get_error() - self.assertEquals(stanza_error.get_condition().name, \ + self.assertEquals(stanza_error.get_condition().name, "not-acceptable") - self.assertEquals(stanza_error.get_text(), \ + self.assertEquals(stanza_error.get_text(), Lang.en.mandatory_field % ("name")) def test_handle_set_register_new_field_mandatory(self): @@ -1479,7 +1479,7 @@ class JCLComponent_TestCase(JCLTestCase): value="account1", field_type="text-single") iq_set = Iq(stanza_type="set", - from_jid="user1@test.com", + from_jid="user1@test.com/res", to_jid="jcl.test.com") query = iq_set.new_query("jabber:iq:register") x_data.as_xml(query) @@ -1543,7 +1543,7 @@ class JCLComponent_TestCase(JCLTestCase): value=43, field_type="text-single") iq_set = Iq(stanza_type="set", - from_jid="user1@test.com", + from_jid="user1@test.com/res", to_jid="account1@jcl.test.com") query = iq_set.new_query("jabber:iq:register") x_data.as_xml(query) @@ -1569,12 +1569,12 @@ class JCLComponent_TestCase(JCLTestCase): self.assertTrue(isinstance(iq_result, Iq)) self.assertEquals(iq_result.get_node().prop("type"), "result") 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] self.assertTrue(isinstance(message, Message)) 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(), \ _account.get_update_message_subject(Lang.en)) self.assertEquals(message.get_body(), \ @@ -1596,7 +1596,7 @@ class JCLComponent_TestCase(JCLTestCase): jid="account1@jcl.test.com") model.db_disconnect() iq_set = Iq(stanza_type="set", - from_jid="user1@test.com", + from_jid="user1@test.com/res", to_jid="jcl.test.com") query = iq_set.new_query("jabber:iq:register") query.newChild(None, "remove", None)