Added list of AllowedIPs for WireGuard/AWG connections on Share -> Users ->ExpandedContent page (#1055)
Added list of AllowedIPs for WireGuard/AWG connections on Share -> Users ->ExpandedContent page
This commit is contained in:
parent
87cb5f620a
commit
253ae75795
3 changed files with 22 additions and 4 deletions
|
@ -20,6 +20,7 @@ namespace
|
||||||
constexpr char latestHandshake[] = "latestHandshake";
|
constexpr char latestHandshake[] = "latestHandshake";
|
||||||
constexpr char dataReceived[] = "dataReceived";
|
constexpr char dataReceived[] = "dataReceived";
|
||||||
constexpr char dataSent[] = "dataSent";
|
constexpr char dataSent[] = "dataSent";
|
||||||
|
constexpr char allowedIps[] = "allowedIps";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,6 +50,7 @@ QVariant ClientManagementModel::data(const QModelIndex &index, int role) const
|
||||||
case LatestHandshakeRole: return userData.value(configKey::latestHandshake).toString();
|
case LatestHandshakeRole: return userData.value(configKey::latestHandshake).toString();
|
||||||
case DataReceivedRole: return userData.value(configKey::dataReceived).toString();
|
case DataReceivedRole: return userData.value(configKey::dataReceived).toString();
|
||||||
case DataSentRole: return userData.value(configKey::dataSent).toString();
|
case DataSentRole: return userData.value(configKey::dataSent).toString();
|
||||||
|
case AllowedIpsRole: return userData.value(configKey::allowedIps).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
return QVariant();
|
return QVariant();
|
||||||
|
@ -141,6 +143,10 @@ ErrorCode ClientManagementModel::updateModel(const DockerContainer container, co
|
||||||
userData[configKey::dataSent] = client.dataSent;
|
userData[configKey::dataSent] = client.dataSent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!client.allowedIps.isEmpty()) {
|
||||||
|
userData[configKey::allowedIps] = client.allowedIps;
|
||||||
|
}
|
||||||
|
|
||||||
obj[configKey::userData] = userData;
|
obj[configKey::userData] = userData;
|
||||||
m_clientsTable.replace(i, obj);
|
m_clientsTable.replace(i, obj);
|
||||||
break;
|
break;
|
||||||
|
@ -266,8 +272,9 @@ ErrorCode ClientManagementModel::wgShow(const DockerContainer container, const S
|
||||||
const auto peerList = parts.filter("peer:");
|
const auto peerList = parts.filter("peer:");
|
||||||
const auto latestHandshakeList = parts.filter("latest handshake:");
|
const auto latestHandshakeList = parts.filter("latest handshake:");
|
||||||
const auto transferredDataList = parts.filter("transfer:");
|
const auto transferredDataList = parts.filter("transfer:");
|
||||||
|
const auto allowedIpsList = parts.filter("allowed ips:");
|
||||||
|
|
||||||
if (latestHandshakeList.isEmpty() || transferredDataList.isEmpty() || peerList.isEmpty()) {
|
if (allowedIpsList.isEmpty() || latestHandshakeList.isEmpty() || transferredDataList.isEmpty() || peerList.isEmpty()) {
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -281,19 +288,20 @@ ErrorCode ClientManagementModel::wgShow(const DockerContainer container, const S
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
for (int i = 0; i < peerList.size() && i < transferredDataList.size() && i < latestHandshakeList.size(); ++i) {
|
for (int i = 0; i < peerList.size() && i < transferredDataList.size() && i < latestHandshakeList.size() && i < allowedIpsList.size(); ++i) {
|
||||||
|
|
||||||
const auto transferredData = getStrValue(transferredDataList[i]).split(",");
|
const auto transferredData = getStrValue(transferredDataList[i]).split(",");
|
||||||
auto latestHandshake = getStrValue(latestHandshakeList[i]);
|
auto latestHandshake = getStrValue(latestHandshakeList[i]);
|
||||||
auto serverBytesReceived = transferredData.front().trimmed();
|
auto serverBytesReceived = transferredData.front().trimmed();
|
||||||
auto serverBytesSent = transferredData.back().trimmed();
|
auto serverBytesSent = transferredData.back().trimmed();
|
||||||
|
auto allowedIps = getStrValue(allowedIpsList[i]);
|
||||||
|
|
||||||
changeHandshakeFormat(latestHandshake);
|
changeHandshakeFormat(latestHandshake);
|
||||||
|
|
||||||
serverBytesReceived.chop(QStringLiteral(" received").length());
|
serverBytesReceived.chop(QStringLiteral(" received").length());
|
||||||
serverBytesSent.chop(QStringLiteral(" sent").length());
|
serverBytesSent.chop(QStringLiteral(" sent").length());
|
||||||
|
|
||||||
data.push_back({ getStrValue(peerList[i]), latestHandshake, serverBytesSent, serverBytesReceived });
|
data.push_back({ getStrValue(peerList[i]), latestHandshake, serverBytesSent, serverBytesReceived, allowedIps });
|
||||||
}
|
}
|
||||||
|
|
||||||
return error;
|
return error;
|
||||||
|
|
|
@ -17,7 +17,8 @@ public:
|
||||||
CreationDateRole,
|
CreationDateRole,
|
||||||
LatestHandshakeRole,
|
LatestHandshakeRole,
|
||||||
DataReceivedRole,
|
DataReceivedRole,
|
||||||
DataSentRole
|
DataSentRole,
|
||||||
|
AllowedIpsRole
|
||||||
};
|
};
|
||||||
|
|
||||||
struct WgShowData
|
struct WgShowData
|
||||||
|
@ -26,6 +27,7 @@ public:
|
||||||
QString latestHandshake;
|
QString latestHandshake;
|
||||||
QString dataReceived;
|
QString dataReceived;
|
||||||
QString dataSent;
|
QString dataSent;
|
||||||
|
QString allowedIps;
|
||||||
};
|
};
|
||||||
|
|
||||||
ClientManagementModel(std::shared_ptr<Settings> settings, QObject *parent = nullptr);
|
ClientManagementModel(std::shared_ptr<Settings> settings, QObject *parent = nullptr);
|
||||||
|
|
|
@ -840,6 +840,14 @@ PageType {
|
||||||
|
|
||||||
text: qsTr("Data sent: %1").arg(dataSent)
|
text: qsTr("Data sent: %1").arg(dataSent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ParagraphTextType {
|
||||||
|
color: textColumn.textColor
|
||||||
|
visible: allowedIps
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
text: qsTr("Allowed IPs: %1").arg(allowedIps)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue