tdaq-develop-2025-02-12
WizardSupervisor.h
1 #ifndef _ots_WizardSupervisor_h
2 #define _ots_WizardSupervisor_h
3 
4 #include "otsdaq/SOAPUtilities/SOAPMessenger.h"
5 
6 #pragma GCC diagnostic push
7 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
8 #include <xdaq/Application.h>
9 #pragma GCC diagnostic pop
10 #include "otsdaq/Macros/XDAQApplicationMacros.h"
11 
12 #include <xoap/Method.h>
13 #include <xoap/SOAPBody.h>
14 #include <xoap/SOAPEnvelope.h>
15 #include <xoap/domutils.h>
16 
17 #pragma GCC diagnostic push
18 #pragma GCC diagnostic ignored "-Wunknown-pragmas"
19 #include <cgicc/HTMLClasses.h>
20 #include <cgicc/HTMLDoctype.h>
21 #include <cgicc/HTTPCookie.h>
22 #include <cgicc/HTTPHeader.h>
23 #include <xgi/Method.h>
24 #pragma GCC diagnostic pop
25 
26 #include <map>
27 #include <string>
28 
29 #include "otsdaq/SupervisorInfo/AllSupervisorInfo.h"
30 
31 namespace ots
32 {
33 // clang-format off
34 class HttpXmlDocument;
35 class ITRACEController;
36 
46 class WizardSupervisor : public xdaq::Application, public SOAPMessenger
47 {
48  public:
49  XDAQ_INSTANTIATOR();
50 
51  WizardSupervisor(xdaq::ApplicationStub*);
52  virtual ~WizardSupervisor(void);
53 
54  void init(void);
55  void destroy(void);
56 
57  void generateURL(void);
58  static void printURL(WizardSupervisor* ptr, std::string securityCode);
59 
60  void Default(xgi::Input* in, xgi::Output* out);
61  void verification(xgi::Input* in, xgi::Output* out);
62  void request(xgi::Input* in, xgi::Output* out);
63  void requestIcons(xgi::Input* in, xgi::Output* out);
64 
65  void editSecurity(xgi::Input* in, xgi::Output* out);
66  void UserSettings(xgi::Input* in, xgi::Output* out);
67  void tooltipRequest(xgi::Input* in, xgi::Output* out);
68  void toggleSecurityCodeGeneration(xgi::Input* in, xgi::Output* out);
69  std::string validateUploadFileType(const std::string fileType);
70  void cleanUpPreviews();
71  void savePostPreview(std::string& subject,
72  std::string& text,
73  const std::vector<cgicc::FormFile>& files,
74  std::string creator,
75  HttpXmlDocument* xmldoc = nullptr);
76 
78  xoap::MessageReference supervisorSequenceCheck (xoap::MessageReference message);
79  xoap::MessageReference supervisorLastTableGroupRequest (xoap::MessageReference message);
80 
81 
82  private:
83  std::string securityCode_;
84  bool defaultSequence_;
85  static const std::vector<std::string> allowedFileUploadTypes_, matchingFileUploadTypes_;
86  static const std::string WIZ_SUPERVISOR, WIZ_PORT, SERVICE_DATA_PATH;
87 
88  std::string supervisorClass_;
89  std::string supervisorClassNoNamespace_;
90  AllSupervisorInfo allSupervisorInfo_;
91 
92  enum
93  {
94  ADMIN_PERMISSIONS_THRESHOLD = 255,
95  EXPERIMENT_NAME_MIN_LENTH = 3,
96  EXPERIMENT_NAME_MAX_LENTH = 25,
97  USER_DATA_EXPIRATION_TIME = 60 * 20,
98  };
99 };
100 // clang-format on
101 } // namespace ots
102 
103 #endif
xoap::MessageReference supervisorSequenceCheck(xoap::MessageReference message)
External Supervisor XOAP handlers.