mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-04-27 07:48:01 -07:00
Added logs tab to allow moderators the ability to review log history/details
This commit is contained in:
parent
e68b8b314a
commit
62ffcde6bd
15 changed files with 581 additions and 18 deletions
|
|
@ -940,7 +940,6 @@ QList<ServerInfo_Ban> Servatrice_DatabaseInterface::getUserBanHistory(const QStr
|
|||
return results;
|
||||
}
|
||||
|
||||
//QString adminID,adminName,banTime,banLength,banReason,visibleReason;
|
||||
while (query->next()){
|
||||
banDetails.set_admin_id(QString(query->value(0).toString()).toStdString());
|
||||
banDetails.set_admin_name(QString(query->value(5).toString()).toStdString());
|
||||
|
|
@ -1000,4 +999,87 @@ QList<ServerInfo_Warning> Servatrice_DatabaseInterface::getUserWarnHistory(const
|
|||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
}
|
||||
|
||||
QList<ServerInfo_ChatMessage> Servatrice_DatabaseInterface::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)
|
||||
{
|
||||
|
||||
QList<ServerInfo_ChatMessage> results;
|
||||
ServerInfo_ChatMessage chatMessage;
|
||||
|
||||
if (!checkSql())
|
||||
return results;
|
||||
|
||||
// BUILD QUERY STRING BASED ON PASSED IN VALUES
|
||||
QString queryString = "SELECT * FROM cockatrice_log WHERE `sender_ip` IS NOT NULL";
|
||||
if (!user.isEmpty())
|
||||
queryString.append(" AND (`sender_name` = :user_name OR `target_name` = :user_name)");
|
||||
|
||||
if (!ipaddress.isEmpty())
|
||||
queryString.append(" AND `sender_ip` = :ip_to_find");
|
||||
|
||||
if (!gameid.isEmpty())
|
||||
queryString.append(" AND (`target_id` = :game_id AND `target_type` = 'game')");
|
||||
|
||||
if (!gamename.isEmpty())
|
||||
queryString.append(" AND (`target_name` = :game_name AND `target_type` = 'game')");
|
||||
|
||||
if (!message.isEmpty())
|
||||
queryString.append(" AND `log_message` LIKE :log_message");
|
||||
|
||||
if (chat || game || room) {
|
||||
queryString.append(" AND (");
|
||||
|
||||
if (chat)
|
||||
queryString.append("`target_type` = 'chat'");
|
||||
|
||||
if (game) {
|
||||
if (chat)
|
||||
queryString.append(" OR `target_type` = 'game'");
|
||||
else
|
||||
queryString.append("`target_type` = 'game'");
|
||||
}
|
||||
|
||||
if (room) {
|
||||
if (game || chat)
|
||||
queryString.append(" OR `target_type` = 'room'");
|
||||
else
|
||||
queryString.append("`target_type` = 'room'");
|
||||
}
|
||||
queryString.append(")");
|
||||
}
|
||||
|
||||
if (range)
|
||||
queryString.append(" AND log_time >= DATE_SUB(now(), INTERVAL :range_time HOUR)");
|
||||
|
||||
if (maxresults)
|
||||
queryString.append(" LIMIT :limit_size");
|
||||
|
||||
QSqlQuery *query = prepareQuery(queryString);
|
||||
if (!user.isEmpty()) { query->bindValue(":user_name", user); }
|
||||
if (!ipaddress.isEmpty()) { query->bindValue(":ip_to_find", ipaddress); }
|
||||
if (!gameid.isEmpty()) { query->bindValue(":game_id", gameid); }
|
||||
if (!gamename.isEmpty()) { query->bindValue(":game_name", gamename); }
|
||||
if (!message.isEmpty()) { query->bindValue(":log_message", message); }
|
||||
if (range) { query->bindValue(":range_time", range); }
|
||||
if (maxresults) { query->bindValue(":limit_size", maxresults); }
|
||||
|
||||
if (!execSqlQuery(query)) {
|
||||
qDebug("Failed to collect log history information: SQL Error");
|
||||
return results;
|
||||
}
|
||||
|
||||
while (query->next()) {
|
||||
chatMessage.set_time(QString(query->value(0).toString()).toStdString());
|
||||
chatMessage.set_sender_id(QString(query->value(1).toString()).toStdString());
|
||||
chatMessage.set_sender_name(QString(query->value(2).toString()).toStdString());
|
||||
chatMessage.set_sender_ip(QString(query->value(3).toString()).toStdString());
|
||||
chatMessage.set_message(QString(query->value(4).toString()).toStdString());
|
||||
chatMessage.set_target_type(QString(query->value(5).toString()).toStdString());
|
||||
chatMessage.set_target_id(QString(query->value(6).toString()).toStdString());
|
||||
chatMessage.set_target_name(QString(query->value(7).toString()).toStdString());
|
||||
results << chatMessage;
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue