Gateway registration, unregistration & edition

- default values added in form
- DBus bridge: fixed array of struct management when adding dynamically a method
- fixed doc for some methods
- ugly fix for presence status
- added dependency for XEP-0077 in XEP-0100 plugin
- Wix: added unregister button in gateways manager
- Wix: added privacy warning in gateways manager
This commit is contained in:
Goffi 2009-12-15 01:27:32 +11:00
commit e3a3c1e975

View file

@ -30,7 +30,7 @@ PLUGIN_INFO = {
"name": "Gateways Plugin",
"import_name": "XEP_0100",
"type": "XEP",
"dependencies": [],
"dependencies": ["XEP_0077"],
"main": "XEP_0100",
"description": """Implementation of Gateways protocol"""
}
@ -42,6 +42,7 @@ class XEP_0100():
self.host = host
self.__gateways = {} #dict used to construct the answer to findGateways. Key = target jid
host.bridge.addMethod("findGateways", ".communication", in_sign='s', out_sign='s', method=self.findGateways)
host.bridge.addMethod("gatewayRegister", ".request", in_sign='ssa(ss)', out_sign='s', method=self.gatewayRegister)
def discoInfo(self, disco, entity, request_id):
"""Find disco infos about entity, to check if it is a gateway"""
@ -76,6 +77,18 @@ class XEP_0100():
debug ("item found: %s", item.name)
self.host.disco.requestInfo(item.entity).addCallback(self.discoInfo, entity=item.entity, request_id=request_id)
def registrationSuccessful(self, target):
"""Called when in_band registration is ok, we must now follow the rest of procedure"""
print "Registration successful, doing the rest"
self.host.addContact(target)
self.host.setPresence(target)
def gatewayRegister(self, action, target, fields):
"""Register gateway using in-band registration, then log-in to gateway"""
if action == 'SUBMIT':
self.host.plugins["XEP_0077"].addTrigger(target, self.registrationSuccessful)
return self.host.plugins["XEP_0077"].in_band_submit(action, target, fields)
def findGateways(self, target):
"""Find gateways in the target JID, using discovery protocol
Return an id used for retrieving the list of gateways