1 #ifndef _ots_Utilities_RemoteWebUsers_h
2 #define _ots_Utilities_RemoteWebUsers_h
4 #include "xgi/Method.h"
5 #include "otsdaq-core/SOAPUtilities/SOAPMessenger.h"
6 #include "otsdaq-core/ConfigurationDataFormats/ConfigurationGroupKey.h"
16 class SupervisorDescriptorInfo;
17 class HttpXmlDocument;
26 COOKIE_CODE_LENGTH = 512,
29 static const std::string REQ_NO_LOGIN_RESPONSE;
30 static const std::string REQ_NO_PERMISSION_RESPONSE;
31 static const std::string REQ_USER_LOCKOUT_RESPONSE;
32 static const std::string REQ_LOCK_REQUIRED_RESPONSE;
39 std::ostringstream *out,
42 uint8_t *userPermissions = 0,
43 const bool refresh =
true,
44 const uint8_t permissionsThreshold = 1,
45 const bool checkLock =
false,
46 const bool lockRequired =
false,
47 std::string *userWithLock = 0,
48 std::string *username = 0,
49 std::string *displayName = 0,
50 uint64_t *activeSessionIndex = 0);
53 std::string getActiveUserList (
const xdaq::ApplicationDescriptor* supervisorDescriptor);
54 void sendSystemMessage (
const xdaq::ApplicationDescriptor* supervisorDescriptor,
const std::string &toUser,
const std::string& msg);
55 void makeSystemLogbookEntry (
const xdaq::ApplicationDescriptor* supervisorDescriptor,
const std::string &entryText);
56 std::pair<std::string ,
ConfigurationGroupKey> getLastConfigGroup (
const xdaq::ApplicationDescriptor* supervisorDescriptor,
const std::string &actionOfLastGroup, std::string &actionTimeString);
61 bool cookieCodeIsActiveForRequest(
62 const xdaq::ApplicationDescriptor* supervisorDescriptor,
63 std::string& cookieCode,
64 uint8_t* userPermissions = 0,
67 std::string* userWithLock = 0);
69 bool getUserInfoForCookie(
70 const xdaq::ApplicationDescriptor* supervisorDescriptor,
71 std::string& cookieCode,
72 std::string* userName,
73 std::string* displayName = 0,
74 uint64_t* activeSessionIndex = 0);
78 std::string ActiveUserList_;
79 time_t ActiveUserLastUpdateTime_;
82 ACTIVE_USERS_UPDATE_THRESHOLD = 10,
86 const std::string RemoteWebUsers::REQ_NO_LOGIN_RESPONSE =
"NoLogin";
87 const std::string RemoteWebUsers::REQ_NO_PERMISSION_RESPONSE =
"NoPermission";
88 const std::string RemoteWebUsers::REQ_USER_LOCKOUT_RESPONSE =
"UserLockout";
89 const std::string RemoteWebUsers::REQ_LOCK_REQUIRED_RESPONSE =
"LockRequired";