From b6fbe1bba0251eb2e432e8fe770c78b2563923ef Mon Sep 17 00:00:00 2001 From: Ivan Maslov Date: Tue, 25 Oct 2022 07:38:12 +0300 Subject: [PATCH] in progress --- .../Orchestrator/Managers/ControlPanel.py | 55 +++++++++---------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/Sources/pyOpenRPA/Orchestrator/Managers/ControlPanel.py b/Sources/pyOpenRPA/Orchestrator/Managers/ControlPanel.py index 22e8a715..4ad88a61 100755 --- a/Sources/pyOpenRPA/Orchestrator/Managers/ControlPanel.py +++ b/Sources/pyOpenRPA/Orchestrator/Managers/ControlPanel.py @@ -158,20 +158,19 @@ class ControlPanel(): lHTMLStr = self.mInitJSJinja2Template.render(**inDataDict) # Render the template into str return lHTMLStr - def DataDictGenerate(self, inRequest): - """ + def DataDictGenerate(self, inAuthTokenStr=None): + """ Сформировать словарь для генерации шаблона - :param inRequest: request handler (from http.server import BaseHTTPRequestHandler) + :param inAuthTokenStr: Текстовый токен авторизации пользователя :return: """ lData = { "StorageRobotDict": None, "ControlPanelInstance":self, "OrchestratorModule":Orchestrator, - "RequestInstance": inRequest, - "UserInfoDict": Orchestrator.WebUserInfoGet(inRequest=inRequest), - "UserUACDict": Orchestrator.UACUserDictGet(inRequest=inRequest), - "UserUACCheckDef": inRequest.UACClientCheck, + "UserInfoDict": Orchestrator.WebUserInfoGet(inAuthTokenStr=inAuthTokenStr), + "UserUACDict": Orchestrator.WebUserUACHierarchyGet(inAuthTokenStr=inAuthTokenStr), + "UserUACCheckDef": lambda inKeyList: Orchestrator.WebUserUACCheck(inAuthTokenStr=inAuthTokenStr,inKeyList=inKeyList), "EnumerateDef": enumerate, "OperatorModule": operator, "MathModule": math @@ -184,36 +183,36 @@ class ControlPanel(): lData.update(self.mJinja2DataUpdateDict) return lData - def OnRefreshHTMLStr(self, inRequest): + def OnRefreshHTMLStr(self, inAuthTokenStr=None): """ Event to generate HTML code of the control panel when refresh time is over. Support backward compatibility for previous versions. - :param inRequest: request handler (from http.server import BaseHTTPRequestHandler) + :param inAuthTokenStr: request handler (from http.server import BaseHTTPRequestHandler) :return: """ lHTMLStr = None lL = Orchestrator.OrchestratorLoggerGet() if self.mBackwardCompatibilityHTMLDef is None: if self.mRefreshHTMLJinja2Template is not None or (self.mJinja2TemplateRefreshBool == True and self.mRefreshHTMLJinja2TemplateFileNameStr is not None): - lDataDict = self.OnRefreshHTMLDataDict(inRequest = inRequest) + lDataDict = self.OnRefreshHTMLDataDict(inAuthTokenStr = inAuthTokenStr) # Jinja code lHTMLStr = self.RefreshHTMLJinja2StrGenerate(inDataDict=lDataDict) else: - lHTMLStr = self.BackwardAdapterHTMLDef(inRequest=inRequest) + lHTMLStr = self.BackwardAdapterHTMLDef(inAuthTokenStr=inAuthTokenStr) # return the str return lHTMLStr - def OnRefreshHTMLDataDict(self, inRequest): + def OnRefreshHTMLDataDict(self, inAuthTokenStr): """ Event to prepare data context for the futher Jinja2 HTML generation. You can override this def if you want some thing more data :param inRequest: request handler (from http.server import BaseHTTPRequestHandler) :return: dict """ - return self.DataDictGenerate(inRequest=inRequest) + return self.DataDictGenerate(inAuthTokenStr=inAuthTokenStr) - def OnRefreshHTMLHashStr(self, inRequest): + def OnRefreshHTMLHashStr(self, inAuthTokenStr): """ Generate the hash the result output HTML. You can override this function if you know how to optimize HTML rendering. TODO NEED TO MODIFY ServerSettings to work with Hash because of all defs are need do use Hash @@ -223,7 +222,7 @@ class ControlPanel(): """ return None - def OnRefreshJSONDict(self, inRequest): + def OnRefreshJSONDict(self, inAuthTokenStr): """ Event to transmit some data from server side to the client side in JSON format. Call when page refresh is initialized @@ -234,36 +233,36 @@ class ControlPanel(): if self.mBackwardCompatibilityJSONDef is None: pass else: - lResultDict = self.BackwardAdapterJSONDef(inRequest=inRequest) + lResultDict = self.BackwardAdapterJSONDef(inAuthTokenStr=inAuthTokenStr) return lResultDict - def OnInitJSStr(self, inRequest): + def OnInitJSStr(self, inAuthTokenStr): """ Event when orchestrator web page is init on the client side - you can transmit some java script code is str type to execute it once. - :param inRequest: request handler (from http.server import BaseHTTPRequestHandler) + :param inAuthTokenStr: request handler (from http.server import BaseHTTPRequestHandler) :return: "" """ lJSStr = "" if self.mBackwardCompatibilityJSDef is None: if self.mInitJSJinja2Template is not None or (self.mJinja2TemplateRefreshBool == True and self.mInitJSJinja2TemplateFileNameStr is not None): - lDataDict = self.OnInitJSDataDict(inRequest = inRequest) + lDataDict = self.OnInitJSDataDict(inAuthTokenStr = inAuthTokenStr) # Jinja code lJSStr = self.InitJSJinja2StrGenerate(inDataDict=lDataDict) else: - lJSStr = self.BackwardAdapterJSDef(inRequest=inRequest) + lJSStr = self.BackwardAdapterJSDef(inAuthTokenStr=inAuthTokenStr) return lJSStr - def OnInitJSDataDict(self, inRequest): + def OnInitJSDataDict(self, inAuthTokenStr): """ Event to prepare data context for the futher Jinja2 JS init generation. You can override this def if you want some thing more data :param inRequest: request handler (from http.server import BaseHTTPRequestHandler) :return: dict """ - return self.DataDictGenerate(inRequest=inRequest) + return self.DataDictGenerate(inAuthTokenStr=inAuthTokenStr) - def BackwardAdapterHTMLDef(self,inRequest): + def BackwardAdapterHTMLDef(self,inAuthTokenStr): lGS = Orchestrator.GSettingsGet() lL = Orchestrator.OrchestratorLoggerGet() # HTMLRenderDef @@ -277,7 +276,7 @@ class ControlPanel(): if lDEFARGLen == 1: # def (inGSettings) lHTMLResult = lItemHTMLRenderDef(lGS) elif lDEFARGLen == 2: # def (inRequest, inGSettings) - lHTMLResult = lItemHTMLRenderDef(inRequest, lGS) + lHTMLResult = lItemHTMLRenderDef(inAuthTokenStr, lGS) elif lDEFARGLen == 0: # def () lHTMLResult = lItemHTMLRenderDef() # RunFunction @@ -294,7 +293,7 @@ class ControlPanel(): return lResultStr - def BackwardAdapterJSONDef(self,inRequest): + def BackwardAdapterJSONDef(self,inAuthTokenStr): lGS = Orchestrator.GSettingsGet() lL = Orchestrator.OrchestratorLoggerGet() # HTMLRenderDef @@ -308,7 +307,7 @@ class ControlPanel(): if lDEFARGLen == 1: # def (inGSettings) lJSONResult = lItemJSONGeneratorDef(lGS) elif lDEFARGLen == 2: # def (inRequest, inGSettings) - lJSONResult = lItemJSONGeneratorDef(inRequest, lGS) + lJSONResult = lItemJSONGeneratorDef(inAuthTokenStr, lGS) elif lDEFARGLen == 0: # def () lJSONResult = lItemJSONGeneratorDef() # RunFunction @@ -323,7 +322,7 @@ class ControlPanel(): f"Ошибка при формирвоании JSON (JSONGeneratorDef). Идентификатор панели управления {self.mControlPanelNameStr}") return lResultDict - def BackwardAdapterJSDef(self,inRequest): + def BackwardAdapterJSDef(self,inAuthTokenStr): lGS = Orchestrator.GSettingsGet() lL = Orchestrator.OrchestratorLoggerGet() # HTMLRenderDef @@ -337,7 +336,7 @@ class ControlPanel(): if lDEFARGLen == 1: # def (inGSettings) lJSResult = lJSInitGeneratorDef(lGS) elif lDEFARGLen == 2: # def (inRequest, inGSettings) - lJSResult = lJSInitGeneratorDef(inRequest, lGS) + lJSResult = lJSInitGeneratorDef(inAuthTokenStr, lGS) elif lDEFARGLen == 0: # def () lJSResult = lJSInitGeneratorDef() if type(lJSResult) is str: