tdaq-develop-2025-02-12
CodeEditorSupervisor.cc
1 #include "otsdaq/CodeEditor/CodeEditorSupervisor.h"
2 
3 using namespace ots;
4 
5 XDAQ_INSTANTIATOR_IMPL(CodeEditorSupervisor)
6 
7 //==============================================================================
8 CodeEditorSupervisor::CodeEditorSupervisor(xdaq::ApplicationStub* stub)
9  : CoreSupervisorBase(stub)
10 {
11  __SUP_COUT__ << "Constructed." << __E__;
12 } // end constructor
13 
14 //==============================================================================
15 CodeEditorSupervisor::~CodeEditorSupervisor(void)
16 {
17  __SUP_COUT__ << "Destroying..." << __E__;
18  // theStateMachineImplementation_ is reset and the object it points to deleted in
19  // ~CoreSupervisorBase()
20 } // end destructor
21 
22 //==============================================================================
23 void CodeEditorSupervisor::defaultPage(xgi::Input* /*in*/, xgi::Output* out)
24 {
25  __SUP_COUT__ << "ApplicationDescriptor LID="
26  << getApplicationDescriptor()->getLocalId() << __E__;
27  *out << "<!DOCTYPE HTML><html lang='en'><frameset col='100%' row='100%'><frame "
28  "src='/WebPath/html/CodeEditor.html?urn="
29  << getApplicationDescriptor()->getLocalId() << "'></frameset></html>";
30 } // end defaultPage()
31 
32 //==============================================================================
37 {
38  CorePropertySupervisorBase::setSupervisorProperty(
39  CorePropertySupervisorBase::SUPERVISOR_PROPERTIES.UserPermissionsThreshold,
40  std::string() + "*=1 | codeEditor=-1");
41 
42 } // end setSupervisorPropertyDefaults()
43 
44 //==============================================================================
48 {
49  CorePropertySupervisorBase::setSupervisorProperty(
50  CorePropertySupervisorBase::SUPERVISOR_PROPERTIES.RequireUserLockRequestTypes,
51  "codeEditor");
52  CorePropertySupervisorBase::setSupervisorProperty(
53  CorePropertySupervisorBase::SUPERVISOR_PROPERTIES.RequireSecurityRequestTypes,
54  "codeEditor");
55 
56 } // end forceSupervisorPropertyValues()
57 
58 //==============================================================================
62 void CodeEditorSupervisor::request(const std::string& requestType,
63  cgicc::Cgicc& cgiIn,
64  HttpXmlDocument& xmlOut,
65  const WebUsers::RequestUserInfo& userInfo)
66 {
67  // Commands:
68  // codeEditor
69 
70  if(requestType == "codeEditor")
71  {
72  __SUP_COUT__ << "Code Editor" << __E__;
73 
74  codeEditor_.xmlRequest(CgiDataUtilities::getData(cgiIn, "option"),
75  false, // Indicates Edit mode
76  cgiIn,
77  &xmlOut,
78  userInfo.username_);
79  }
80  else if(requestType == "readOnlycodeEditor")
81  {
82  codeEditor_.xmlRequest(CgiDataUtilities::getData(cgiIn, "option"),
83  true, // Indicates read only mode
84  cgiIn,
85  &xmlOut,
86  userInfo.username_);
87  }
88  else
89  {
90  __SUP_SS__ << "requestType Request, " << requestType << ", not recognized."
91  << __E__;
92  __SUP_SS_THROW__;
93  }
94 } // end request()
static std::string getData(cgicc::Cgicc &cgi, const std::string &needle)
void xmlRequest(const std::string &option, bool readOnlyMode, cgicc::Cgicc &cgiIn, HttpXmlDocument *xmlOut, const std::string &username)
request are handled here
virtual void setSupervisorPropertyDefaults(void) override
override to control supervisor specific defaults
virtual void forceSupervisorPropertyValues(void) override
virtual void request(const std::string &requestType, cgicc::Cgicc &cgiIn, HttpXmlDocument &xmlOut, const WebUsers::RequestUserInfo &userInfo) override
virtual void defaultPage(xgi::Input *in, xgi::Output *out) override
CorePropertySupervisorBase override functions.