plugins XEP-0045, XEP-0249: allow to join / invite without specifying the JID's host part (use client's values)

This commit is contained in:
souliane 2015-03-24 07:34:32 +01:00
commit d4c627d71f
2 changed files with 13 additions and 14 deletions

View file

@ -363,13 +363,13 @@ class XEP_0045(object):
if not self.checkClient(profile):
return
if room_jid_s:
muc_service = self.host.getClient(profile).muc_service
try:
room_jid = jid.JID(room_jid_s)
except (RuntimeError, jid.InvalidFormat, AttributeError):
mess = _("Invalid room JID: %s") % room_jid_s
log.warning(mess)
self.host.bridge.newAlert(mess, _("Group chat error"), "ERROR", profile)
return defer.succeed(None)
return defer.fail(jid.InvalidFormat(_(u"Invalid room identifier: '%s'. Please give a room short or full identifier like 'room' or 'room@%s'.") % (room_jid_s, unicode(muc_service))))
if not room_jid.user:
room_jid.user, room_jid.host = room_jid.host, muc_service
else:
room_jid = self.getUniqueName(profile_key=profile_key)
# TODO: error management + signal in bridge

View file

@ -171,18 +171,17 @@ class XEP_0249(object):
@command (group): JID
- JID: the JID of the person to invite
"""
jid_s = mess_data["unparsed"].strip()
contact_jid_s = mess_data["unparsed"].strip()
my_host = self.host.profiles[profile].jid.host
try:
assert jid_s
jid_ = jid.JID(jid_s)
assert jid_.user
assert jid_.host
except (jid.InvalidFormat, AssertionError):
feedback = _(u"You must provide a valid JID to invite, like in '/invite contact@example.net'")
contact_jid = jid.JID(contact_jid_s)
except (RuntimeError, jid.InvalidFormat, AttributeError):
feedback = _(u"You must provide a valid JID to invite, like in '/invite contact@{host}'").format(host=my_host)
self.host.plugins[C.TEXT_CMDS].feedBack(feedback, mess_data, profile)
return False
self.invite(jid_, mess_data["to"], {}, profile)
if not contact_jid.user:
contact_jid.user, contact_jid.host = contact_jid.host, my_host
self.invite(contact_jid, mess_data["to"], {}, profile)
return False