From a68f19d72f4a1c673b864c0308024a97024f6736 Mon Sep 17 00:00:00 2001 From: "vladimir.kuznetsov" Date: Sun, 24 Dec 2023 12:25:05 +0700 Subject: [PATCH] added migration from version 3 of client management to version 4 --- client/ui/models/clientManagementModel.cpp | 19 +++++++++++++++++++ client/ui/models/clientManagementModel.h | 2 ++ 2 files changed, 21 insertions(+) diff --git a/client/ui/models/clientManagementModel.cpp b/client/ui/models/clientManagementModel.cpp index 8ec31d02..81237917 100644 --- a/client/ui/models/clientManagementModel.cpp +++ b/client/ui/models/clientManagementModel.cpp @@ -45,6 +45,23 @@ QVariant ClientManagementModel::data(const QModelIndex &index, int role) const return QVariant(); } +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); + } + +} + ErrorCode ClientManagementModel::updateModel(DockerContainer container, ServerCredentials credentials) { beginResetModel(); @@ -67,6 +84,8 @@ ErrorCode ClientManagementModel::updateModel(DockerContainer container, ServerCr m_clientsTable = QJsonDocument::fromJson(clientsTableString).array(); if (m_clientsTable.isEmpty()) { + migration(clientsTableString); + int count = 0; if (container == DockerContainer::OpenVpn || container == DockerContainer::ShadowSocks diff --git a/client/ui/models/clientManagementModel.h b/client/ui/models/clientManagementModel.h index 6b6adf68..4bbe3e27 100644 --- a/client/ui/models/clientManagementModel.h +++ b/client/ui/models/clientManagementModel.h @@ -35,6 +35,8 @@ protected: private: bool isClientExists(const QString &clientId); + void migration(const QByteArray &clientsTableString); + ErrorCode revokeOpenVpn(const int row, const DockerContainer container, ServerCredentials credentials); ErrorCode revokeWireGuard(const int row, const DockerContainer container, ServerCredentials credentials);