diff --git a/bumper/xmppserver.py b/bumper/xmppserver.py index be932a9..697c201 100644 --- a/bumper/xmppserver.py +++ b/bumper/xmppserver.py @@ -307,15 +307,21 @@ class XMPPAsyncClient: ctl_to = xml.get("to") if not "from" in xml.attrib: xml.attrib["from"] = "{}".format(self.bumper_jid) + if "errno" in data: + xmppserverlog.error(f"Error from bot - {data}") if ( - "errno='103' error='permission denied," in data - ): # No permissions, usually if bot was last on Ecovac network + "errno='103'" in data + ): # No permissions, usually if bot was last on Ecovac network, Bumper will try to add fuid user as owner if self.type == self.BOT: + xmppserverlog.info("Bot reported user has no permissions, Bumper will attempt to add user to bot. This is typical if bot was last on Ecovacs Network.") xquery = xml.getchildren() ctl = xquery[0].getchildren() - ctlerr = ctl[0].attrib["error"] - adminuser = ctlerr.replace("permission denied, please contact ", "") - adminuser = adminuser.replace(" ", "") + if "error" in ctl[0].attrib: + ctlerr = ctl[0].attrib["error"] + adminuser = ctlerr.replace("permission denied, please contact ", "") + adminuser = adminuser.replace(" ", "") + elif "admin" in ctl[0].attrib: + adminuser = ctl[0].attrib["admin"] if not ( adminuser.startswith("fuid_") or adminuser.startswith("fusername_") @@ -328,14 +334,14 @@ class XMPPAsyncClient: adduser = ''.format( uuid.uuid4(), adminuser, self.bumper_jid, newuser ) - xmppserverlog.debug("Add User: {}".format(adduser)) + xmppserverlog.debug("Adding User to bot - {}".format(adduser)) self.send(adduser) # Add user ACs - Manage users, settings, and clean (full access) adduseracs = ''.format( uuid.uuid4(), adminuser, self.bumper_jid, newuser ) - xmppserverlog.debug("Add User ACs: {}".format(adduseracs)) + xmppserverlog.debug("Add User ACs to bot - {}".format(adduseracs)) self.send(adduseracs) # GetUserInfo - Just to confirm it set correctly