From 1ac69ae315604aba5ba75eb6d2ac294d154d32b5 Mon Sep 17 00:00:00 2001 From: shortcutme Date: Fri, 15 Dec 2017 12:13:19 +0100 Subject: [PATCH] New UiWebsocket API command to run commands as other site --- src/Ui/UiWebsocket.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Ui/UiWebsocket.py b/src/Ui/UiWebsocket.py index 85876287..11083329 100644 --- a/src/Ui/UiWebsocket.py +++ b/src/Ui/UiWebsocket.py @@ -5,6 +5,7 @@ import hashlib import os import shutil import re +import copy import gevent @@ -321,6 +322,16 @@ class UiWebsocket(object): # - Actions - + def actionAs(self, to, address, cmd, params=[]): + if not self.hasSitePermission(address): + return self.response(to, "No permission for site %s" % address) + req_self = copy.copy(self) + req_self.site = self.server.sites.get(address) + req_self.hasCmdPermission = self.hasCmdPermission # Use the same permissions as current site + req_obj = super(UiWebsocket, req_self) + req = {"id": to, "cmd": cmd, "params": params} + req_obj.handleRequest(req) + # Do callback on response {"cmd": "response", "to": message_id, "result": result} def actionResponse(self, to, result): if to in self.waiting_cb: