Allow Moderators to Grant Replay & Activate in TabAdmin (#5492)

This commit is contained in:
Zach H 2025-01-17 21:23:24 -05:00 committed by GitHub
parent d3a1538af3
commit 648c96ac3d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 27 additions and 11 deletions

View file

@ -87,18 +87,23 @@ TabAdmin::TabAdmin(TabSupervisor *_tabSupervisor, AbstractClient *_client, bool
activateUserLayout->addWidget(userToActivate, 0, 0); activateUserLayout->addWidget(userToActivate, 0, 0);
activateUserLayout->addWidget(activateUserButton, 0, 1); activateUserLayout->addWidget(activateUserButton, 0, 1);
QVBoxLayout *vbox = new QVBoxLayout; auto *adminVBox = new QVBoxLayout;
vbox->addWidget(updateServerMessageButton); adminVBox->addWidget(updateServerMessageButton);
vbox->addWidget(shutdownServerButton); adminVBox->addWidget(shutdownServerButton);
vbox->addWidget(reloadConfigButton); adminVBox->addWidget(reloadConfigButton);
vbox->addLayout(grandReplayAccessLayout);
vbox->addLayout(activateUserLayout);
vbox->addStretch();
adminGroupBox = new QGroupBox; adminGroupBox = new QGroupBox;
adminGroupBox->setLayout(vbox); adminGroupBox->setLayout(adminVBox);
adminGroupBox->setEnabled(false); adminGroupBox->setEnabled(false);
auto *moderatorVBox = new QVBoxLayout;
moderatorVBox->addLayout(grandReplayAccessLayout);
moderatorVBox->addLayout(activateUserLayout);
moderatorGroupBox = new QGroupBox;
moderatorGroupBox->setLayout(moderatorVBox);
moderatorGroupBox->setEnabled(false);
unlockButton = new QPushButton; unlockButton = new QPushButton;
connect(unlockButton, &QPushButton::clicked, this, &TabAdmin::actUnlock); connect(unlockButton, &QPushButton::clicked, this, &TabAdmin::actUnlock);
lockButton = new QPushButton; lockButton = new QPushButton;
@ -107,6 +112,8 @@ TabAdmin::TabAdmin(TabSupervisor *_tabSupervisor, AbstractClient *_client, bool
QVBoxLayout *mainLayout = new QVBoxLayout; QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(adminGroupBox); mainLayout->addWidget(adminGroupBox);
mainLayout->addWidget(moderatorGroupBox);
mainLayout->addStretch();
mainLayout->addWidget(unlockButton); mainLayout->addWidget(unlockButton);
mainLayout->addWidget(lockButton); mainLayout->addWidget(lockButton);
@ -125,6 +132,7 @@ void TabAdmin::retranslateUi()
shutdownServerButton->setText(tr("&Shut down server")); shutdownServerButton->setText(tr("&Shut down server"));
reloadConfigButton->setText(tr("&Reload configuration")); reloadConfigButton->setText(tr("&Reload configuration"));
adminGroupBox->setTitle(tr("Server administration functions")); adminGroupBox->setTitle(tr("Server administration functions"));
moderatorGroupBox->setTitle(tr("Server moderator functions"));
replayIdToGrant->setPlaceholderText(tr("Replay ID")); replayIdToGrant->setPlaceholderText(tr("Replay ID"));
grantReplayAccessButton->setText(tr("Grant Replay Access")); grantReplayAccessButton->setText(tr("Grant Replay Access"));
@ -229,20 +237,28 @@ void TabAdmin::activateUserProcessResponse(const Response &response)
void TabAdmin::actUnlock() void TabAdmin::actUnlock()
{ {
if (fullAdmin) if (fullAdmin) {
adminGroupBox->setEnabled(true); adminGroupBox->setEnabled(true);
}
moderatorGroupBox->setEnabled(true);
lockButton->setEnabled(true); lockButton->setEnabled(true);
unlockButton->setEnabled(false); unlockButton->setEnabled(false);
locked = false; locked = false;
emit adminLockChanged(false); emit adminLockChanged(false);
} }
void TabAdmin::actLock() void TabAdmin::actLock()
{ {
if (fullAdmin) if (fullAdmin) {
adminGroupBox->setEnabled(false); adminGroupBox->setEnabled(false);
}
moderatorGroupBox->setEnabled(false);
lockButton->setEnabled(false); lockButton->setEnabled(false);
unlockButton->setEnabled(true); unlockButton->setEnabled(true);
locked = true; locked = true;
emit adminLockChanged(true); emit adminLockChanged(true);
} }

View file

@ -36,7 +36,7 @@ private:
bool fullAdmin; bool fullAdmin;
QPushButton *updateServerMessageButton, *shutdownServerButton, *reloadConfigButton, *grantReplayAccessButton, QPushButton *updateServerMessageButton, *shutdownServerButton, *reloadConfigButton, *grantReplayAccessButton,
*activateUserButton; *activateUserButton;
QGroupBox *adminGroupBox; QGroupBox *adminGroupBox, *moderatorGroupBox;
QPushButton *unlockButton, *lockButton; QPushButton *unlockButton, *lockButton;
QLineEdit *replayIdToGrant, *userToActivate; QLineEdit *replayIdToGrant, *userToActivate;
signals: signals: