mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-04-27 07:48:01 -07:00
Added the ability or moderation staff to request user ban history
This commit is contained in:
parent
3bc61eb2e9
commit
90cb890cc2
17 changed files with 140 additions and 4 deletions
|
|
@ -923,3 +923,33 @@ void Servatrice_DatabaseInterface::updateUsersLastLoginData(const QString &userN
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
QList<ServerInfo_Ban> Servatrice_DatabaseInterface::getUserBanHistory(const QString userName)
|
||||
{
|
||||
QList<ServerInfo_Ban> results;
|
||||
ServerInfo_Ban banDetails;
|
||||
|
||||
if (!checkSql())
|
||||
return results;
|
||||
|
||||
QSqlQuery *query = prepareQuery("SELECT A.id_admin, A.time_from, A.minutes, A.reason, A.visible_reason, B.name AS name_admin FROM {prefix}_bans A LEFT JOIN {prefix}_users B ON A.id_admin=B.id WHERE A.user_name = :user_name");
|
||||
query->bindValue(":user_name", userName);
|
||||
|
||||
if (!execSqlQuery(query)) {
|
||||
qDebug("Failed to collect ban history information: SQL Error");
|
||||
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());
|
||||
banDetails.set_ban_time(QString(query->value(1).toString()).toStdString());
|
||||
banDetails.set_ban_length(QString(query->value(2).toString()).toStdString());
|
||||
banDetails.set_ban_reason(QString(query->value(3).toString()).toStdString());
|
||||
banDetails.set_visible_reason(QString(query->value(4).toString()).toStdString());
|
||||
results << banDetails;
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,6 +78,7 @@ public:
|
|||
LogMessage_TargetType targetType, const int targetId, const QString &targetName);
|
||||
bool changeUserPassword(const QString &user, const QString &oldPassword, const QString &newPassword);
|
||||
QChar getGenderChar(ServerInfo_User_Gender const &gender);
|
||||
QList<ServerInfo_Ban> getUserBanHistory(const QString userName);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@
|
|||
#include "pb/event_add_to_list.pb.h"
|
||||
#include "pb/event_remove_from_list.pb.h"
|
||||
#include "pb/event_notify_user.pb.h"
|
||||
#include "pb/response_ban_history.pb.h"
|
||||
#include "pb/response_deck_list.pb.h"
|
||||
#include "pb/response_deck_download.pb.h"
|
||||
#include "pb/response_deck_upload.pb.h"
|
||||
|
|
@ -60,6 +61,7 @@
|
|||
#include "pb/serverinfo_replay.pb.h"
|
||||
#include "pb/serverinfo_user.pb.h"
|
||||
#include "pb/serverinfo_deckstorage.pb.h"
|
||||
#include "pb/serverinfo_ban.pb.h"
|
||||
|
||||
#include "version_string.h"
|
||||
#include <string>
|
||||
|
|
@ -301,6 +303,7 @@ Response::ResponseCode ServerSocketInterface::processExtendedModeratorCommand(in
|
|||
{
|
||||
switch ((ModeratorCommand::ModeratorCommandType) cmdType) {
|
||||
case ModeratorCommand::BAN_FROM_SERVER: return cmdBanFromServer(cmd.GetExtension(Command_BanFromServer::ext), rc);
|
||||
case ModeratorCommand::BAN_HISTORY: return cmdGetBanHistory(cmd.GetExtension(Command_GetBanHistory::ext), rc);
|
||||
default: return Response::RespFunctionNotAllowed;
|
||||
}
|
||||
}
|
||||
|
|
@ -747,6 +750,19 @@ Response::ResponseCode ServerSocketInterface::cmdReplayDeleteMatch(const Command
|
|||
// MODERATOR FUNCTIONS.
|
||||
// May be called by admins and moderators. Permission is checked by the calling function.
|
||||
|
||||
Response::ResponseCode ServerSocketInterface::cmdGetBanHistory(const Command_GetBanHistory &cmd, ResponseContainer &rc)
|
||||
{
|
||||
QList<ServerInfo_Ban> banList;
|
||||
QString userName = QString::fromStdString(cmd.user_name());
|
||||
|
||||
Response_BanHistory *re = new Response_BanHistory;
|
||||
QListIterator<ServerInfo_Ban> banIterator(sqlInterface->getUserBanHistory(userName));
|
||||
while (banIterator.hasNext())
|
||||
re->add_ban_list()->CopyFrom(banIterator.next());
|
||||
rc.setResponseExtension(re);
|
||||
return Response::RespOk;
|
||||
}
|
||||
|
||||
Response::ResponseCode ServerSocketInterface::cmdBanFromServer(const Command_BanFromServer &cmd, ResponseContainer & /*rc*/)
|
||||
{
|
||||
if (!sqlInterface->checkSql())
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ class Command_AccountEdit;
|
|||
class Command_AccountImage;
|
||||
class Command_AccountPassword;
|
||||
|
||||
|
||||
class ServerSocketInterface : public Server_ProtocolHandler
|
||||
{
|
||||
Q_OBJECT
|
||||
|
|
@ -95,6 +96,7 @@ private:
|
|||
Response::ResponseCode cmdReplayModifyMatch(const Command_ReplayModifyMatch &cmd, ResponseContainer &rc);
|
||||
Response::ResponseCode cmdReplayDeleteMatch(const Command_ReplayDeleteMatch &cmd, ResponseContainer &rc);
|
||||
Response::ResponseCode cmdBanFromServer(const Command_BanFromServer &cmd, ResponseContainer &rc);
|
||||
Response::ResponseCode cmdGetBanHistory(const Command_GetBanHistory &cmd, ResponseContainer &rc);
|
||||
Response::ResponseCode cmdShutdownServer(const Command_ShutdownServer &cmd, ResponseContainer &rc);
|
||||
Response::ResponseCode cmdUpdateServerMessage(const Command_UpdateServerMessage &cmd, ResponseContainer &rc);
|
||||
Response::ResponseCode cmdRegisterAccount(const Command_Register &cmd, ResponseContainer &rc);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue