Only allow admin users to manage memories

translations
Phil Taylor 2024-04-29 10:12:31 +01:00
rodzic cf6c984429
commit 4cfcf94e37
4 zmienionych plików z 21 dodań i 8 usunięć

Wyświetl plik

@ -4,7 +4,7 @@
#include "memories.h" #include "memories.h"
#include "ui_memories.h" #include "ui_memories.h"
memories::memories(bool slowLoad, QWidget *parent) : memories::memories(bool isAdmin, bool slowLoad, QWidget *parent) :
QWidget(parent), QWidget(parent),
slowLoad(slowLoad), slowLoad(slowLoad),
ui(new Ui::memories) ui(new Ui::memories)
@ -19,7 +19,10 @@ memories::memories(bool slowLoad, QWidget *parent) :
this->setObjectName("memories"); this->setObjectName("memories");
queue = cachingQueue::getInstance(this); queue = cachingQueue::getInstance(this);
rigCaps = queue->getRigCaps(); rigCaps = queue->getRigCaps();
if (!isAdmin)
{
ui->disableEditing->setEnabled(false);
}
if (rigCaps == Q_NULLPTR) if (rigCaps == Q_NULLPTR)
{ {
// We have no rigCaps, so cannot continue // We have no rigCaps, so cannot continue

Wyświetl plik

@ -32,7 +32,7 @@ class memories : public QWidget
Q_OBJECT Q_OBJECT
public: public:
explicit memories(bool slowLoad=false,QWidget *parent = nullptr); explicit memories(bool isAdmin, bool slowLoad=false,QWidget *parent = nullptr);
~memories(); ~memories();
void populate(); void populate();

Wyświetl plik

@ -443,8 +443,8 @@ void wfmain::openRig()
emit connectionStatus(true); // Signal any other parts that need to know if we are connecting/connected. emit connectionStatus(true); // Signal any other parts that need to know if we are connecting/connected.
ui->connectBtn->setText("Cancel connection"); // We are attempting to connect ui->connectBtn->setText("Cancel connection"); // We are attempting to connect
connStatus = connConnecting; connStatus = connConnecting;
isRadioAdmin = true; // Set user to admin, will be reset if not.
// PET: This could be in a better place? // M0VSE: This could be in a better place maybe?
if (prefs.audioSystem == tciAudio) if (prefs.audioSystem == tciAudio)
{ {
prefs.rxSetup.tci = tci; prefs.rxSetup.tci = tci;
@ -502,6 +502,7 @@ void wfmain::makeRig()
connect(rig, SIGNAL(requestRadioSelection(QList<radio_cap_packet>)), this, SLOT(radioSelection(QList<radio_cap_packet>))); connect(rig, SIGNAL(requestRadioSelection(QList<radio_cap_packet>)), this, SLOT(radioSelection(QList<radio_cap_packet>)));
connect(rig, SIGNAL(setRadioUsage(quint8, bool, quint8, QString, QString)), selRad, SLOT(setInUse(quint8, bool, quint8, QString, QString))); connect(rig, SIGNAL(setRadioUsage(quint8, bool, quint8, QString, QString)), selRad, SLOT(setInUse(quint8, bool, quint8, QString, QString)));
connect(rig, SIGNAL(setRadioUsage(quint8, bool, quint8, QString, QString)), this, SLOT(radioInUse(quint8, bool, quint8, QString, QString)));
connect(selRad, SIGNAL(selectedRadio(quint8)), rig, SLOT(setCurrentRadio(quint8))); connect(selRad, SIGNAL(selectedRadio(quint8)), rig, SLOT(setCurrentRadio(quint8)));
// Rig comm setup: // Rig comm setup:
connect(this, SIGNAL(sendCommSetup(rigTypedef,unsigned char, udpPreferences, audioSetup, audioSetup, QString, quint16)), rig, SLOT(commSetup(rigTypedef,unsigned char, udpPreferences, audioSetup, audioSetup, QString, quint16))); connect(this, SIGNAL(sendCommSetup(rigTypedef,unsigned char, udpPreferences, audioSetup, audioSetup, QString, quint16)), rig, SLOT(commSetup(rigTypedef,unsigned char, udpPreferences, audioSetup, audioSetup, QString, quint16)));
@ -5163,7 +5164,7 @@ void wfmain::on_memoriesBtn_clicked()
if (rigCaps != Q_NULLPTR) { if (rigCaps != Q_NULLPTR) {
if (memWindow == Q_NULLPTR) { if (memWindow == Q_NULLPTR) {
// Add slowload option for background loading. // Add slowload option for background loading.
memWindow = new memories(false); memWindow = new memories(isRadioAdmin, false);
this->memWindow->connect(this, SIGNAL(haveMemory(memoryType)), memWindow, SLOT(receiveMemory(memoryType))); this->memWindow->connect(this, SIGNAL(haveMemory(memoryType)), memWindow, SLOT(receiveMemory(memoryType)));
memWindow->populate(); // Call populate to get the initial memories memWindow->populate(); // Call populate to get the initial memories
@ -6049,6 +6050,15 @@ void wfmain::receiveRigCaps(rigCapabilities* caps)
getInitialRigState(); getInitialRigState();
} }
void wfmain::radioInUse(quint8 radio, bool admin, quint8 busy, QString user, QString ip)
{
Q_UNUSED(busy)
Q_UNUSED(radio)
qDebug(logSystem()) << "Is this user an admin?" << user << admin;
isRadioAdmin = admin;
}
/* USB Hotplug support added at the end of the file for convenience */ /* USB Hotplug support added at the end of the file for convenience */
#ifdef USB_HOTPLUG #ifdef USB_HOTPLUG

Wyświetl plik

@ -500,7 +500,7 @@ private slots:
void receiveElapsed(bool sub, qint64 us); void receiveElapsed(bool sub, qint64 us);
void connectionTimeout(); void connectionTimeout();
void receiveRigCaps(rigCapabilities* caps); void receiveRigCaps(rigCapabilities* caps);
void radioInUse(quint8 radio, bool admin, quint8 busy, QString user, QString ip);
private: private:
Ui::wfmain *ui; // Main UI Ui::wfmain *ui; // Main UI
@ -822,7 +822,7 @@ private:
QImage lcdImage; QImage lcdImage;
connectionStatus_t connStatus = connDisconnected; connectionStatus_t connStatus = connDisconnected;
uchar currentReceiver = 0; uchar currentReceiver = 0;
bool isRadioAdmin = true;
}; };
Q_DECLARE_METATYPE(udpPreferences) Q_DECLARE_METATYPE(udpPreferences)