refactoring: cli management separation

This commit is contained in:
vladimir.kuznetsov
2025-08-01 10:52:30 +08:00
parent 9f0d4aaba1
commit 76413ec2df
7 changed files with 8 additions and 51 deletions

View File

@@ -81,9 +81,10 @@ void CoreController::initModels()
m_engine->rootContext()->setContextProperty("ProtocolsModel", m_protocolsModel.get());
auto clientManagementController = QSharedPointer<ClientManagementController>::create(m_settings, this);
m_clientManagementModel.reset(new ClientManagementModel(m_settings, clientManagementController, this));
m_clientManagementModel.reset(new ClientManagementModel(clientManagementController, this));
m_clientManagementUIController.reset(new ClientManagementUIController(clientManagementController, this));
m_engine->rootContext()->setContextProperty("ClientManagementUIController", m_clientManagementUIController.get());
m_engine->rootContext()->setContextProperty("ClientManagementModel", m_clientManagementModel.get());
m_apiServicesModel.reset(new ApiServicesModel(this));

View File

@@ -528,20 +528,6 @@ ErrorCode ClientManagementController::revokeClient(const int row, const DockerCo
return revokeClient(row, container, credentials, serverIndex, serverController, clientsTable);
}
ErrorCode ClientManagementController::revokeClient(const int row, const DockerContainer container, const ServerCredentials &credentials,
const int serverIndex)
{
QSharedPointer<ServerController> serverController(new ServerController(m_settings));
QJsonArray clientsTable;
ErrorCode errorCode = updateClientsData(container, credentials, serverController, clientsTable);
if (errorCode != ErrorCode::NoError) {
return errorCode;
}
return revokeClient(row, container, credentials, serverIndex, serverController, clientsTable);
}
ErrorCode ClientManagementController::revokeClient(const int row, const DockerContainer container, const ServerCredentials &credentials,
const int serverIndex, const QSharedPointer<ServerController> &serverController,

View File

@@ -247,14 +247,6 @@ void ExportUIController::exportConfig(const QString &fileName)
SystemController::saveFile(fileName, m_config);
}
void ExportUIController::updateClientManagementModel(const DockerContainer container, ServerCredentials credentials)
{
ErrorCode errorCode = m_clientManagementController->updateClientsData(container, credentials);
if (errorCode != ErrorCode::NoError) {
emit exportErrorOccurred(errorCode);
}
}
void ExportUIController::revokeConfig(const int row, const DockerContainer container, ServerCredentials credentials)
{
ErrorCode errorCode = m_clientManagementController->revokeClient(row, container, credentials,

View File

@@ -40,7 +40,6 @@ public slots:
void exportConfig(const QString &fileName);
void updateClientManagementModel(const DockerContainer container, ServerCredentials credentials);
void revokeConfig(const int row, const DockerContainer container, ServerCredentials credentials);
void renameClient(const int row, const QString &clientName, const DockerContainer container, ServerCredentials credentials);

View File

@@ -3,7 +3,6 @@
#include <QJsonDocument>
#include <QJsonObject>
#include "core/controllers/selfhosted/serverController.h"
#include "core/controllers/selfhosted/clientManagementController.h"
#include "logger.h"
@@ -25,11 +24,9 @@ namespace
}
}
ClientManagementModel::ClientManagementModel(std::shared_ptr<Settings> settings,
QSharedPointer<ClientManagementController> clientManagementController,
ClientManagementModel::ClientManagementModel(QSharedPointer<ClientManagementController> clientManagementController,
QObject *parent)
: QAbstractListModel(parent),
m_settings(settings),
m_clientManagementController(clientManagementController)
{
connect(m_clientManagementController.data(), &ClientManagementController::clientsDataUpdated,
@@ -82,21 +79,7 @@ void ClientManagementModel::onClientRenamed(const int row, const QString &newNam
}
}
void ClientManagementModel::migration(const QByteArray &clientsTableString)
{
QJsonObject clientsTable = QJsonDocument::fromJson(clientsTableString).object();
for (auto &clientId : clientsTable.keys()) {
QJsonObject client;
client[configKey::clientId] = clientId;
QJsonObject userData;
userData[configKey::clientName] = clientsTable.value(clientId).toObject().value(configKey::clientName);
client[configKey::userData] = userData;
m_clientsTable.push_back(client);
}
}
QHash<int, QByteArray> ClientManagementModel::roleNames() const
{

View File

@@ -4,9 +4,7 @@
#include <QAbstractListModel>
#include <QJsonArray>
#include "core/controllers/selfhosted/serverController.h"
#include "core/controllers/selfhosted/clientManagementController.h"
#include "settings.h"
class ClientManagementModel : public QAbstractListModel
{
@@ -22,8 +20,7 @@ public:
AllowedIpsRole
};
explicit ClientManagementModel(std::shared_ptr<Settings> settings,
QSharedPointer<ClientManagementController> clientManagementController,
explicit ClientManagementModel(QSharedPointer<ClientManagementController> clientManagementController,
QObject *parent = nullptr);
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
@@ -41,7 +38,6 @@ private slots:
private:
QJsonArray m_clientsTable;
std::shared_ptr<Settings> m_settings;
QSharedPointer<ClientManagementController> m_clientManagementController;
};

View File

@@ -268,8 +268,8 @@ PageType {
onClicked: {
accessTypeSelector.currentIndex = 1
PageController.showBusyIndicator(true)
ExportController.updateClientManagementModel(ContainersModel.getProcessedContainerIndex(),
ServersModel.getProcessedServerCredentials())
ClientManagementUIController.updateModel(ContainersModel.getProcessedContainerIndex(),
ServersModel.getProcessedServerCredentials())
PageController.showBusyIndicator(false)
}
}
@@ -436,8 +436,8 @@ PageType {
if (accessTypeSelector.currentIndex === 1) {
PageController.showBusyIndicator(true)
ExportController.updateClientManagementModel(ContainersModel.getProcessedContainerIndex(),
ServersModel.getProcessedServerCredentials())
ClientManagementUIController.updateModel(ContainersModel.getProcessedContainerIndex(),
ServersModel.getProcessedServerCredentials())
PageController.showBusyIndicator(false)
}
}