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_moderator_login.pb.h>
10#include <libcockatrice/protocol/pb/serverinfo_user_alt.pb.h>
11#include <libcockatrice/protocol/pb/serverinfo_user_session.pb.h>
12#include <libcockatrice/protocol/pb/serverinfo_warning.pb.h>
16#define DATABASE_SCHEMA_VERSION 36
30 bool checkUserIsIdBanned(
const QString &clientId, QString &banReason,
int &banSecondsRemaining);
32 bool checkUserIsIpBanned(
const QString &ipAddress, QString &banReason,
int &banSecondsRemaining);
39 const QString &password,
40 const QString &clientId,
43 bool passwordNeedsHash)
override;
52 const QString &hostName,
53 const QString &databaseName,
54 const QString &userName,
55 const QString &password);
69 QMap<QString, ServerInfo_User>
getBuddyList(
const QString &name)
override;
70 QMap<QString, ServerInfo_User>
getIgnoreList(
const QString &name)
override;
71 bool isInBuddyList(
const QString &whoseList,
const QString &who)
override;
72 bool isInIgnoreList(
const QString &whoseList,
const QString &who)
override;
75 const QStringList &roomGameTypes,
77 const QSet<QString> &allPlayersEver,
78 const QSet<QString> &allSpectatorsEver,
79 const QList<GameReplay *> &replayList)
override;
87 const QString &address,
88 const QString &clientId,
89 const QString &connectionType)
override;
97 const QString &userName,
98 const QString &clientId,
100 int &banSecondsRemaining)
override;
103 const QString &realName,
104 const QString &password,
105 bool passwordNeedsHash,
106 const QString &emailAddress,
107 const QString &country,
108 bool active =
false)
override;
109 bool activateUser(
const QString &userName,
const QString &token)
override;
113 const QString &senderName,
114 const QString &senderIp,
118 const QString &targetName)
override;
119 bool changeUserPassword(
const QString &user,
const QString &password,
bool passwordNeedsHash)
override;
121 const QString &oldPassword,
122 bool oldPasswordNeedsHash,
123 const QString &newPassword,
124 bool newPasswordNeedsHash)
override;
128 addWarning(
const QString userName,
const QString adminName,
const QString warningReason,
const QString clientID);
131 const QString &ipaddress,
132 const QString &gamename,
133 const QString &gameid,
134 const QString &message,
140 QList<ServerInfo_UserSession>
getUserSessions(
const QString &userName,
int limit);
141 QList<ServerInfo_UserAlt>
getUserAlts(
const QString &userName);
149 const QString &column,
150 const QString &_user,
151 const QString &_datatocheck);
153 const QString &ipaddress,
154 const QString &clientid,
155 const QString &action,
156 const QString &details,
157 const bool &results);
Represents a complete deck, including metadata, zones, cards, and sideboard plans.
Definition deck_list.h:63
bool activateUser(const QString &userName, const QString &token) override
Definition servatrice_database_interface.cpp:274
bool addWarning(const QString userName, const QString adminName, const QString warningReason, const QString clientID)
Definition servatrice_database_interface.cpp:1278
bool changeUserPassword(const QString &user, const QString &password, bool passwordNeedsHash) override
Definition servatrice_database_interface.cpp:1080
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:311
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:1497
bool openDatabase()
Definition servatrice_database_interface.cpp:59
QMap< QString, ServerInfo_User > getIgnoreList(const QString &name) override
Definition servatrice_database_interface.cpp:855
bool usernameIsValid(const QString &user, QString &error) override
Definition servatrice_database_interface.cpp:156
qint64 startSession(const QString &userName, const QString &address, const QString &clientId, const QString &connectionType) override
Definition servatrice_database_interface.cpp:789
void lockSessionTables() override
Definition servatrice_database_interface.cpp:763
bool removeForgotPassword(const QString &user) override
Definition servatrice_database_interface.cpp:1660
bool isInIgnoreList(const QString &whoseList, const QString &who) override
Definition servatrice_database_interface.cpp:600
bool checkUserIsIdBanned(const QString &clientId, QString &banReason, int &banSecondsRemaining)
Definition servatrice_database_interface.cpp:405
QMap< QString, ServerInfo_User > getBuddyList(const QString &name) override
Definition servatrice_database_interface.cpp:831
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:913
QList< ServerInfo_Ban > getUserBanHistory(const QString userName)
Definition servatrice_database_interface.cpp:1246
DeckList * getDeckFromDatabase(int deckId, int userId) override
Definition servatrice_database_interface.cpp:1010
bool doesForgotPasswordExist(const QString &user)
Definition servatrice_database_interface.cpp:1675
bool userSessionExists(const QString &userName) override
Definition servatrice_database_interface.cpp:775
Servatrice_DatabaseInterface(int _instanceId, Servatrice *_server)
Definition servatrice_database_interface.cpp:22
QSqlDatabase sqlDatabase
Definition servatrice_database_interface.h:25
void endSession(qint64 sessionId) override
Definition servatrice_database_interface.cpp:816
QString getUserSalt(const QString &user) override
Definition servatrice_database_interface.cpp:539
int getNextGameId() override
Definition servatrice_database_interface.cpp:879
QSqlQuery * prepareQuery(const QString &queryText)
Definition servatrice_database_interface.cpp:129
bool checkUserIsBanned(const QString &ipAddress, const QString &userName, const QString &clientId, QString &banReason, int &banSecondsRemaining) override
Definition servatrice_database_interface.cpp:385
QList< ServerInfo_ModeratorLogin > getModeratorLastLogins()
Definition servatrice_database_interface.cpp:1440
void setForcePasswordChange(const QString &user, bool force) override
Definition servatrice_database_interface.cpp:1099
ServerInfo_User evalUserQueryResult(const QSqlQuery *query, bool complete, bool withId=false)
Definition servatrice_database_interface.cpp:623
int checkNumberOfUserAccounts(const QString &email) override
Definition servatrice_database_interface.cpp:1619
bool execSqlQuery(QSqlQuery *query)
Definition servatrice_database_interface.cpp:144
const QSqlDatabase & getDatabase()
Definition servatrice_database_interface.h:60
bool isInBuddyList(const QString &whoseList, const QString &who) override
Definition servatrice_database_interface.cpp:577
bool updateUserToken(const QString &token, const QString &user)
Definition servatrice_database_interface.cpp:1699
void unlockSessionTables() override
Definition servatrice_database_interface.cpp:769
int getActiveUserCount(QString connectionType=QString()) override
Definition servatrice_database_interface.cpp:1155
bool activeUserExists(const QString &user) override
Definition servatrice_database_interface.cpp:509
int getNextReplayId() override
Definition servatrice_database_interface.cpp:898
QHash< QString, QSqlQuery * > preparedStatements
Definition servatrice_database_interface.h:26
int instanceId
Definition servatrice_database_interface.h:24
bool validateTableColumnStringData(const QString &table, const QString &column, const QString &_user, const QString &_datatocheck)
Definition servatrice_database_interface.cpp:1720
bool checkUserIsIpBanned(const QString &ipAddress, QString &banReason, int &banSecondsRemaining)
Definition servatrice_database_interface.cpp:473
Servatrice * server
Definition servatrice_database_interface.h:27
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:1029
bool userExists(const QString &user) override
Definition servatrice_database_interface.cpp:524
bool addForgotPassword(const QString &user)
Definition servatrice_database_interface.cpp:1641
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:230
QList< ServerInfo_UserAlt > getUserAlts(const QString &userName)
Definition servatrice_database_interface.cpp:1370
~Servatrice_DatabaseInterface() override
Definition servatrice_database_interface.cpp:27
ServerInfo_User getUserData(const QString &name, bool withId=false) override
Definition servatrice_database_interface.cpp:723
void updateUsersClientID(const QString &userName, const QString &userClientID) override
Definition servatrice_database_interface.cpp:1185
void updateUsersLastLoginData(const QString &userName, const QString &clientVersion) override
Definition servatrice_database_interface.cpp:1198
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:1750
QList< ServerInfo_UserSession > getUserSessions(const QString &userName, int limit)
Definition servatrice_database_interface.cpp:1334
int getUserIdInDB(const QString &name)
Definition servatrice_database_interface.cpp:561
bool checkUserIsNameBanned(QString const &userName, QString &banReason, int &banSecondsRemaining)
Definition servatrice_database_interface.cpp:445
void clearSessionTables() override
Definition servatrice_database_interface.cpp:753
bool removeUserAvatar(const QString &userName)
Definition servatrice_database_interface.cpp:1483
void initDatabase(const QSqlDatabase &_sqlDatabase)
Definition servatrice_database_interface.cpp:36
bool checkSql()
Definition servatrice_database_interface.cpp:107
QList< ServerInfo_Warning > getUserWarnHistory(const QString userName)
Definition servatrice_database_interface.cpp:1304
Definition servatrice.h:134
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
Definition serverinfo_game.proto:5
Definition serverinfo_user.proto:2