otsdaq  v2_05_02_indev
ots::WebUsers Class Reference

Classes

struct  ActiveSession
 
struct  Hash
 
struct  LoginSession
 
struct  RequestUserInfo
 
struct  SystemMessage
 
struct  User
 

Public Types

enum  {
  SESSION_ID_LENGTH = 512, COOKIE_CODE_LENGTH = 512, NOT_FOUND_IN_DATABASE = uint64_t(-1), ACCOUNT_INACTIVE = uint64_t(-2),
  ACCOUNT_BLACKLISTED = uint64_t(-3), ACCOUNT_ERROR_THRESHOLD = uint64_t(-5), USERNAME_LENGTH = 4, DISPLAY_NAME_LENGTH = 4
}
 
enum  { MOD_TYPE_UPDATE, MOD_TYPE_ADD, MOD_TYPE_DELETE }
 
enum  {
  PERMISSION_LEVEL_ADMIN = WebUsers::permissionLevel_t(-1), PERMISSION_LEVEL_EXPERT = 100, PERMISSION_LEVEL_USER = 10, PERMISSION_LEVEL_NOVICE = 1,
  PERMISSION_LEVEL_INACTIVE = 0
}
 
enum  { SYS_CLEANUP_WILDCARD_TIME = 30 }
 
using permissionLevel_t = uint8_t
 

Public Member Functions

void addSystemMessage (const std::string &targetUsersCSV, const std::string &message)
 
void addSystemMessage (const std::string &targetUsersCSV, const std::string &subject, const std::string &message, bool doEmail)
 
void addSystemMessage (const std::vector< std::string > &targetUsers, const std::string &subject, const std::string &message, bool doEmail)
 
std::string getSystemMessage (const std::string &targetUser)
 
bool xmlRequestOnGateway (cgicc::Cgicc &cgi, std::ostringstream *out, HttpXmlDocument *xmldoc, WebUsers::RequestUserInfo &userInfo)
 
void createNewAccount (const std::string &username, const std::string &displayName, const std::string &email)
 
void cleanupExpiredEntries (std::vector< std::string > *loggedOutUsernames=0)
 
std::string createNewLoginSession (const std::string &uuid, const std::string &ip)
 
uint64_t attemptActiveSession (const std::string &uuid, std::string &jumbledUser, const std::string &jumbledPw, std::string &newAccountCode, const std::string &ip)
 
uint64_t attemptActiveSessionWithCert (const std::string &uuid, std::string &jumbledEmail, std::string &cookieCode, std::string &username, const std::string &ip)
 
uint64_t isCookieCodeActiveForLogin (const std::string &uuid, std::string &cookieCode, std::string &username)
 
bool cookieCodeIsActiveForRequest (std::string &cookieCode, std::map< std::string, WebUsers::permissionLevel_t > *userPermissions=0, uint64_t *uid=0, const std::string &ip="0", bool refresh=true, std::string *userWithLock=0, uint64_t *activeUserSessionIndex=0)
 
uint64_t cookieCodeLogout (const std::string &cookieCode, bool logoutOtherUserSessions, uint64_t *uid=0, const std::string &ip="0")
 
bool checkIpAccess (const std::string &ip)
 
std::string getUsersDisplayName (uint64_t uid)
 
std::string getUsersUsername (uint64_t uid)
 
uint64_t getActiveSessionCountForUser (uint64_t uid)
 
std::map< std::string,
WebUsers::permissionLevel_t > 
getPermissionsForUser (uint64_t uid)
 
void insertSettingsForUser (uint64_t uid, HttpXmlDocument *xmldoc, bool includeAccounts=false)
 
std::string getGenericPreference (uint64_t uid, const std::string &preferenceName, HttpXmlDocument *xmldoc=0) const
 
void changeSettingsForUser (uint64_t uid, const std::string &bgcolor, const std::string &dbcolor, const std::string &wincolor, const std::string &layout, const std::string &syslayout)
 
void setGenericPreference (uint64_t uid, const std::string &preferenceName, const std::string &preferenceValue)
 
void modifyAccountSettings (uint64_t actingUid, uint8_t cmd_type, const std::string &username, const std::string &displayname, const std::string &email, const std::string &permissions)
 
bool setUserWithLock (uint64_t actingUid, bool lock, const std::string &username)
 
std::string getUserWithLock (void)
 
std::string getActiveUsersString (void)
 
bool getUserInfoForCookie (std::string &cookieCode, std::string *userName, std::string *displayName=0, uint64_t *activeSessionIndex=0)
 
bool isUsernameActive (const std::string &username) const
 
bool isUserIdActive (uint64_t uid) const
 
uint64_t getAdminUserID (void)
 
std::string getSecurity (void)
 
void saveActiveSessions (void)
 
void loadActiveSessions (void)
 

Static Public Member Functions

static void initializeRequestUserInfo (cgicc::Cgicc &cgi, WebUsers::RequestUserInfo &userInfo)
 
static bool checkRequestAccess (cgicc::Cgicc &cgi, std::ostringstream *out, HttpXmlDocument *xmldoc, WebUsers::RequestUserInfo &userInfo, bool isWizardMode=false, const std::string &wizardModeSequence="")
 
static void tooltipCheckForUsername (const std::string &username, HttpXmlDocument *xmldoc, const std::string &srcFile, const std::string &srcFunc, const std::string &srcId)
 
static void tooltipSetNeverShowForUsername (const std::string &username, HttpXmlDocument *xmldoc, const std::string &srcFile, const std::string &srcFunc, const std::string &srcId, bool doNeverShow, bool temporarySilence)
 
static void deleteUserData (void)
 
static void resetAllUserTooltips (const std::string &userNeedle="*")
 
static void silenceAllUserTooltips (const std::string &username)
 
static void NACDisplayThread (const std::string &nac, const std::string &user)
 

Static Public Attributes

static const std::string OTS_OWNER = getenv("OTS_OWNER")?getenv("OTS_OWNER"):""
 
static const std::string DEFAULT_ADMIN_USERNAME = "admin"
 
static const std::string DEFAULT_ADMIN_DISPLAY_NAME = "Administrator"
 
static const std::string DEFAULT_ADMIN_EMAIL = "root@otsdaq.fnal.gov"
 
static const std::string DEFAULT_ITERATOR_USERNAME = "iterator"
 
static const std::string DEFAULT_STATECHANGER_USERNAME = "statechanger"
 
static const std::string DEFAULT_USER_GROUP = "allUsers"
 
static const std::string REQ_NO_LOGIN_RESPONSE = "NoLogin"
 
static const std::string REQ_NO_PERMISSION_RESPONSE = "NoPermission"
 
static const std::string REQ_USER_LOCKOUT_RESPONSE = "UserLockout"
 
static const std::string REQ_LOCK_REQUIRED_RESPONSE = "LockRequired"
 
static const std::string REQ_ALLOW_NO_USER = "AllowNoUser"
 
static const std::string SECURITY_TYPE_NONE = "NoSecurity"
 
static const std::string SECURITY_TYPE_DIGEST_ACCESS = "DigestAccessAuthentication"
 
static const std::string SECURITY_TYPE_DEFAULT = WebUsers::SECURITY_TYPE_NONE
 

Detailed Description

Definition at line 34 of file WebUsers.h.


The documentation for this class was generated from the following files: