From 46ba4c451856d4bc4b0ee94c18081c83b2f1655a Mon Sep 17 00:00:00 2001 From: AghayeCoder Date: Fri, 31 Jan 2025 17:27:09 +0330 Subject: [PATCH] fix getSubGroupClients for enable/disable and edit clients. --- web/html/xui/inbounds.html | 67 +++++++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 27 deletions(-) diff --git a/web/html/xui/inbounds.html b/web/html/xui/inbounds.html index 9dce8982..1cd1be1a 100644 --- a/web/html/xui/inbounds.html +++ b/web/html/xui/inbounds.html @@ -1195,35 +1195,48 @@ } }, getSubGroupClients(dbInbounds, currentClient) { - const response = { - inbounds: [], - clients: [], - editIds: [] + const response = { + inbounds: [], + clients: [], + editIds: [], + }; + + if (!Array.isArray(dbInbounds) || dbInbounds.length === 0) { + return response; + } + if (!currentClient || !currentClient.subId) { + return response; + } + + dbInbounds.forEach((dbInboundItem) => { + try { + const dbInbound = new DBInbound(dbInboundItem); + if (!dbInbound) { + return; } - if (dbInbounds && dbInbounds.length > 0 && currentClient) { - dbInbounds.forEach((dbInboundItem) => { - const dbInbound = new DBInbound(dbInboundItem); - if (dbInbound) { - const inbound = dbInbound.toInbound(); - if (inbound) { - const clients = inbound.clients; - if (clients.length > 0) { - clients.forEach((client) => { - if (client['subId'] === currentClient['subId']) { - client['inboundId'] = dbInboundItem.id - client['clientId'] = this.getClientId(dbInbound.protocol, client) - response.inbounds.push(dbInboundItem.id) - response.clients.push(client) - response.editIds.push(client['clientId']) - } - }) - } - } - } - }) + + const inbound = dbInbound.toInbound(); + if (!inbound || !Array.isArray(inbound.clients)) { + return; } - return response; - }, + + inbound.clients.forEach((client) => { + if (client.subId === currentClient.subId) { + client.inboundId = dbInboundItem.id; + client.clientId = this.getClientId(dbInbound.protocol, client); + + response.inbounds.push(dbInboundItem.id); + response.clients.push(client); + response.editIds.push(client.clientId); + } + }); + } catch (error) { + console.error("Error processing dbInboundItem:", dbInboundItem, error); + } + }); + + return response; + }, getClientId(protocol, client) { switch (protocol) { case Protocols.TROJAN: return client.password;