1#ifndef SERVATRICE_DATABASE_INTERFACE_H
2#define SERVATRICE_DATABASE_INTERFACE_H
8#include <libcockatrice/protocol/pb/serverinfo_chat_message.pb.h>
9#include <libcockatrice/protocol/pb/serverinfo_warning.pb.h>
13#define DATABASE_SCHEMA_VERSION 34
25 ServerInfo_User
evalUserQueryResult(
const QSqlQuery *query,
bool complete,
bool withId =
false);
27 bool checkUserIsIdBanned(
const QString &clientId, QString &banReason,
int &banSecondsRemaining);
29 bool checkUserIsIpBanned(
const QString &ipAddress, QString &banReason,
int &banSecondsRemaining);
36 const QString &password,
37 const QString &clientId,
40 bool passwordNeedsHash)
override;
49 const QString &hostName,
50 const QString &databaseName,
51 const QString &userName,
52 const QString &password);
66 QMap<QString, ServerInfo_User>
getBuddyList(
const QString &name)
override;
67 QMap<QString, ServerInfo_User>
getIgnoreList(
const QString &name)
override;
68 bool isInBuddyList(
const QString &whoseList,
const QString &who)
override;
69 bool isInIgnoreList(
const QString &whoseList,
const QString &who)
override;
70 ServerInfo_User
getUserData(
const QString &name,
bool withId =
false)
override;
72 const QStringList &roomGameTypes,
73 const ServerInfo_Game &gameInfo,
74 const QSet<QString> &allPlayersEver,
75 const QSet<QString> &allSpectatorsEver,
76 const QList<GameReplay *> &replayList)
override;
84 const QString &address,
85 const QString &clientId,
86 const QString &connectionType)
override;
94 const QString &userName,
95 const QString &clientId,
97 int &banSecondsRemaining)
override;
100 const QString &realName,
101 const QString &password,
102 bool passwordNeedsHash,
103 const QString &emailAddress,
104 const QString &country,
105 bool active =
false)
override;
106 bool activateUser(
const QString &userName,
const QString &token)
override;
110 const QString &senderName,
111 const QString &senderIp,
115 const QString &targetName)
override;
116 bool changeUserPassword(
const QString &user,
const QString &password,
bool passwordNeedsHash)
override;
118 const QString &oldPassword,
119 bool oldPasswordNeedsHash,
120 const QString &newPassword,
121 bool newPasswordNeedsHash)
override;
124 addWarning(
const QString userName,
const QString adminName,
const QString warningReason,
const QString clientID);
127 const QString &ipaddress,
128 const QString &gamename,
129 const QString &gameid,
130 const QString &message,
141 const QString &column,
142 const QString &_user,
143 const QString &_datatocheck);
145 const QString &ipaddress,
146 const QString &clientid,
147 const QString &action,
148 const QString &details,
149 const bool &results);
Represents a complete deck, including metadata, zones, cards, and sideboard plans.
Definition deck_list.h:127
bool activateUser(const QString &userName, const QString &token) override
Definition servatrice_database_interface.cpp:266
bool addWarning(const QString userName, const QString adminName, const QString warningReason, const QString clientID)
Definition servatrice_database_interface.cpp:1157
bool changeUserPassword(const QString &user, const QString &password, bool passwordNeedsHash) override
Definition servatrice_database_interface.cpp:985
AuthenticationResult checkUserPassword(Server_ProtocolHandler *handler, const QString &user, const QString &password, const QString &clientId, QString &reasonStr, int &banSecondsLeft, bool passwordNeedsHash) override
Definition servatrice_database_interface.cpp:301
QList< ServerInfo_ChatMessage > getMessageLogHistory(const QString &user, const QString &ipaddress, const QString &gamename, const QString &gameid, const QString &message, bool &chat, bool &game, bool &room, int &range, int &maxresults)
Definition servatrice_database_interface.cpp:1211
bool openDatabase()
Definition servatrice_database_interface.cpp:53
QMap< QString, ServerInfo_User > getIgnoreList(const QString &name) override
Definition servatrice_database_interface.cpp:778
bool usernameIsValid(const QString &user, QString &error) override
Definition servatrice_database_interface.cpp:154
qint64 startSession(const QString &userName, const QString &address, const QString &clientId, const QString &connectionType) override
Definition servatrice_database_interface.cpp:718
void lockSessionTables() override
Definition servatrice_database_interface.cpp:692
bool removeForgotPassword(const QString &user) override
Definition servatrice_database_interface.cpp:1357
bool isInIgnoreList(const QString &whoseList, const QString &who) override
Definition servatrice_database_interface.cpp:572
bool checkUserIsIdBanned(const QString &clientId, QString &banReason, int &banSecondsRemaining)
Definition servatrice_database_interface.cpp:385
QMap< QString, ServerInfo_User > getBuddyList(const QString &name) override
Definition servatrice_database_interface.cpp:755
void storeGameInformation(const QString &roomName, const QStringList &roomGameTypes, const ServerInfo_Game &gameInfo, const QSet< QString > &allPlayersEver, const QSet< QString > &allSpectatorsEver, const QList< GameReplay * > &replayList) override
Definition servatrice_database_interface.cpp:832
QList< ServerInfo_Ban > getUserBanHistory(const QString userName)
Definition servatrice_database_interface.cpp:1126
DeckList * getDeckFromDatabase(int deckId, int userId) override
Definition servatrice_database_interface.cpp:920
bool doesForgotPasswordExist(const QString &user)
Definition servatrice_database_interface.cpp:1370
bool userSessionExists(const QString &userName) override
Definition servatrice_database_interface.cpp:704
Servatrice_DatabaseInterface(int _instanceId, Servatrice *_server)
Definition servatrice_database_interface.cpp:16
QSqlDatabase sqlDatabase
Definition servatrice_database_interface.h:22
void endSession(qint64 sessionId) override
Definition servatrice_database_interface.cpp:742
QString getUserSalt(const QString &user) override
Definition servatrice_database_interface.cpp:516
int getNextGameId() override
Definition servatrice_database_interface.cpp:801
QSqlQuery * prepareQuery(const QString &queryText)
Definition servatrice_database_interface.cpp:128
bool checkUserIsBanned(const QString &ipAddress, const QString &userName, const QString &clientId, QString &banReason, int &banSecondsRemaining) override
Definition servatrice_database_interface.cpp:366
ServerInfo_User evalUserQueryResult(const QSqlQuery *query, bool complete, bool withId=false)
Definition servatrice_database_interface.cpp:592
int checkNumberOfUserAccounts(const QString &email) override
Definition servatrice_database_interface.cpp:1322
bool execSqlQuery(QSqlQuery *query)
Definition servatrice_database_interface.cpp:143
const QSqlDatabase & getDatabase()
Definition servatrice_database_interface.h:57
bool isInBuddyList(const QString &whoseList, const QString &who) override
Definition servatrice_database_interface.cpp:552
bool updateUserToken(const QString &token, const QString &user)
Definition servatrice_database_interface.cpp:1390
void unlockSessionTables() override
Definition servatrice_database_interface.cpp:698
int getActiveUserCount(QString connectionType=QString()) override
Definition servatrice_database_interface.cpp:1043
bool activeUserExists(const QString &user) override
Definition servatrice_database_interface.cpp:488
int getNextReplayId() override
Definition servatrice_database_interface.cpp:818
QHash< QString, QSqlQuery * > preparedStatements
Definition servatrice_database_interface.h:23
int instanceId
Definition servatrice_database_interface.h:21
bool validateTableColumnStringData(const QString &table, const QString &column, const QString &_user, const QString &_datatocheck)
Definition servatrice_database_interface.cpp:1408
bool checkUserIsIpBanned(const QString &ipAddress, QString &banReason, int &banSecondsRemaining)
Definition servatrice_database_interface.cpp:452
Servatrice * server
Definition servatrice_database_interface.h:24
void logMessage(const int senderId, const QString &senderName, const QString &senderIp, const QString &logMessage, LogMessage_TargetType targetType, const int targetId, const QString &targetName) override
Definition servatrice_database_interface.cpp:938
bool userExists(const QString &user) override
Definition servatrice_database_interface.cpp:502
bool addForgotPassword(const QString &user)
Definition servatrice_database_interface.cpp:1341
bool registerUser(const QString &userName, const QString &realName, const QString &password, bool passwordNeedsHash, const QString &emailAddress, const QString &country, bool active=false) override
Definition servatrice_database_interface.cpp:224
~Servatrice_DatabaseInterface() override
Definition servatrice_database_interface.cpp:21
ServerInfo_User getUserData(const QString &name, bool withId=false) override
Definition servatrice_database_interface.cpp:656
void updateUsersClientID(const QString &userName, const QString &userClientID) override
Definition servatrice_database_interface.cpp:1068
void updateUsersLastLoginData(const QString &userName, const QString &clientVersion) override
Definition servatrice_database_interface.cpp:1080
void addAuditRecord(const QString &user, const QString &ipaddress, const QString &clientid, const QString &action, const QString &details, const bool &results)
Definition servatrice_database_interface.cpp:1433
int getUserIdInDB(const QString &name)
Definition servatrice_database_interface.cpp:538
bool checkUserIsNameBanned(QString const &userName, QString &banReason, int &banSecondsRemaining)
Definition servatrice_database_interface.cpp:424
void clearSessionTables() override
Definition servatrice_database_interface.cpp:682
void initDatabase(const QSqlDatabase &_sqlDatabase)
Definition servatrice_database_interface.cpp:30
bool checkSql()
Definition servatrice_database_interface.cpp:104
QList< ServerInfo_Warning > getUserWarnHistory(const QString userName)
Definition servatrice_database_interface.cpp:1182
Definition servatrice.h:131
LogMessage_TargetType
Definition server_database_interface.h:137
Server_DatabaseInterface(QObject *parent=nullptr)
Definition server_database_interface.h:12
Definition server_protocolhandler.h:46
AuthenticationResult
Definition server.h:32