mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-09-21 09:05:10 -07:00
Introduce a Developer staff level (proto flag 32, DB admin bit 8) that sits between admin and moderator: no kick/ban/warn/report/admin powers, but gets server log access via a new developer command container family (GET_SERVER_STATS, VIEWLOG_HISTORY) and an idle-timeout exemption. - Protocol: IsDeveloper flag, developer_commands.proto envelope, Command_GetServerStats/Command_GetLogHistory, Response_GetServerStats, Command_AdjustMod.should_be_developer - Servatrice: fail-closed developer dispatcher, uptime snapshot handler, shared log history handler reuse, bit-8 DB mapping - Client: burgundy pawn/badge/labels/sort order, prepareDeveloperCommand, minimal Developer stats tab, log tab access, promote/demote actions Took 24 minutes Took 18 seconds # Commit time for manual adjustment: # Took 15 minutes
43 lines
863 B
C++
43 lines
863 B
C++
/**
|
|
* @file tab_developer.h
|
|
* @ingroup ServerTabs
|
|
*/
|
|
//! \todo Document this file.
|
|
|
|
#ifndef TAB_DEVELOPER_H
|
|
#define TAB_DEVELOPER_H
|
|
|
|
#include "tab.h"
|
|
|
|
class AbstractClient;
|
|
class QLabel;
|
|
class QPushButton;
|
|
class QTableWidget;
|
|
class Response;
|
|
|
|
class TabDeveloper : public Tab
|
|
{
|
|
Q_OBJECT
|
|
private:
|
|
AbstractClient *client;
|
|
QTableWidget *statsTable;
|
|
QPushButton *refreshButton;
|
|
QLabel *statusLabel;
|
|
|
|
void appendStatRow(const QString &name, const QString &value);
|
|
static QString formatBytes(quint64 bytes);
|
|
|
|
private slots:
|
|
void refreshClicked();
|
|
void serverStatsResponse(const Response &resp);
|
|
|
|
public:
|
|
explicit TabDeveloper(TabSupervisor *_tabSupervisor, AbstractClient *_client);
|
|
void retranslateUi() override;
|
|
[[nodiscard]] QString getTabText() const override
|
|
{
|
|
return tr("Developer");
|
|
}
|
|
};
|
|
|
|
#endif
|