mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-05-08 14:33:23 +00:00
refactoring: cli management separation
This commit is contained in:
@@ -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));
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user