# HG changeset patch # User Goffi # Date 1670237687 -3600 # Node ID 722c2581877828eb53ad3c7f3b38fbb82eb379ee # Parent 1c84268752a16854718bab112414d10f80129a34 plugin XEP-0470: create a default configuration if node config can't be accessed diff -r 1c84268752a1 -r 722c25818778 sat/plugins/plugin_xep_0060.py --- a/sat/plugins/plugin_xep_0060.py Fri Nov 25 16:34:09 2022 +0100 +++ b/sat/plugins/plugin_xep_0060.py Mon Dec 05 11:54:47 2022 +0100 @@ -961,6 +961,14 @@ d.addCallback(cb) return d + def make_configuration_form(self, options: dict) -> data_form.Form: + """Build a configuration form""" + form = data_form.Form( + formType="submit", formNamespace=pubsub.NS_PUBSUB_NODE_CONFIG + ) + form.makeFields(options) + return form + def _setNodeConfiguration(self, service_s, nodeIdentifier, options, profile_key): client = self.host.getClient(profile_key) d = self.setConfiguration( @@ -973,10 +981,7 @@ request.recipient = service request.nodeIdentifier = nodeIdentifier - form = data_form.Form( - formType="submit", formNamespace=pubsub.NS_PUBSUB_NODE_CONFIG - ) - form.makeFields(options) + form = self.make_configuration_form(options) request.options = form d = request.send(client.xmlstream) diff -r 1c84268752a1 -r 722c25818778 sat/plugins/plugin_xep_0470.py --- a/sat/plugins/plugin_xep_0470.py Fri Nov 25 16:34:09 2022 +0100 +++ b/sat/plugins/plugin_xep_0470.py Mon Dec 05 11:54:47 2022 +0100 @@ -194,6 +194,8 @@ client, service, node ) node_config = await self._p.getConfiguration(client, service, node) + elif e.condition == "forbidden": + node_config = self._p.make_configuration_form({}) else: raise e try: