Merge pull request #473 from amnezia-vpn/bugfix/new-client-on-connection
fixed hang after creating configuration on connection
This commit is contained in:
commit
f1a0b7f0ef
6 changed files with 21 additions and 7 deletions
|
@ -15,6 +15,7 @@ namespace
|
|||
constexpr char clientName[] = "clientName";
|
||||
constexpr char container[] = "container";
|
||||
constexpr char userData[] = "userData";
|
||||
constexpr char creationDate[] = "creationDate";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -40,6 +41,7 @@ QVariant ClientManagementModel::data(const QModelIndex &index, int role) const
|
|||
|
||||
switch (role) {
|
||||
case ClientNameRole: return userData.value(configKey::clientName).toString();
|
||||
case CreationDateRole: return userData.value(configKey::creationDate).toString();
|
||||
}
|
||||
|
||||
return QVariant();
|
||||
|
@ -200,19 +202,20 @@ ErrorCode ClientManagementModel::appendClient(const QString &clientId, const QSt
|
|||
|
||||
for (int i = 0; i < m_clientsTable.size(); i++) {
|
||||
if (m_clientsTable.at(i).toObject().value(configKey::clientId) == clientId) {
|
||||
return renameClient(i, clientName, container, credentials);
|
||||
return renameClient(i, clientName, container, credentials, true);
|
||||
}
|
||||
}
|
||||
|
||||
beginResetModel();
|
||||
beginInsertRows(QModelIndex(), rowCount(), 1);
|
||||
QJsonObject client;
|
||||
client[configKey::clientId] = clientId;
|
||||
|
||||
QJsonObject userData;
|
||||
userData[configKey::clientName] = clientName;
|
||||
userData[configKey::creationDate] = QDateTime::currentDateTime().toString();
|
||||
client[configKey::userData] = userData;
|
||||
m_clientsTable.push_back(client);
|
||||
endResetModel();
|
||||
endInsertRows();
|
||||
|
||||
const QByteArray clientsTableString = QJsonDocument(m_clientsTable).toJson();
|
||||
|
||||
|
@ -229,11 +232,14 @@ ErrorCode ClientManagementModel::appendClient(const QString &clientId, const QSt
|
|||
}
|
||||
|
||||
ErrorCode ClientManagementModel::renameClient(const int row, const QString &clientName, const DockerContainer container,
|
||||
ServerCredentials credentials)
|
||||
ServerCredentials credentials, bool addTimeStamp)
|
||||
{
|
||||
auto client = m_clientsTable.at(row).toObject();
|
||||
auto userData = client[configKey::userData].toObject();
|
||||
userData[configKey::clientName] = clientName;
|
||||
if (addTimeStamp) {
|
||||
userData[configKey::creationDate] = QDateTime::currentDateTime().toString();
|
||||
}
|
||||
client[configKey::userData] = userData;
|
||||
|
||||
m_clientsTable.replace(row, client);
|
||||
|
@ -389,5 +395,6 @@ QHash<int, QByteArray> ClientManagementModel::roleNames() const
|
|||
{
|
||||
QHash<int, QByteArray> roles;
|
||||
roles[ClientNameRole] = "clientName";
|
||||
roles[CreationDateRole] = "creationDate";
|
||||
return roles;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue