From 1780f06242405ccd002b9b51e11c063b8a78cd23 Mon Sep 17 00:00:00 2001 From: Alireza Ahmadi Date: Wed, 29 Mar 2023 00:18:51 +0200 Subject: [PATCH] Remove additional data in config.json --- web/service/xray.go | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/web/service/xray.go b/web/service/xray.go index d9e65f8d..049ba5a8 100644 --- a/web/service/xray.go +++ b/web/service/xray.go @@ -84,15 +84,16 @@ func (s *XrayService) GetXrayConfig() (*xray.Config, error) { clients, ok := settings["clients"].([]interface{}) if ok { // check users active or not - clientStats := inbound.ClientStats for _, clientTraffic := range clientStats { + indexDecrease := 0 for index, client := range clients { c := client.(map[string]interface{}) if c["email"] == clientTraffic.Email { if !clientTraffic.Enable { - clients = RemoveIndex(clients, index) + clients = RemoveIndex(clients, index-indexDecrease) + indexDecrease++ logger.Info("Remove Inbound User", c["email"], "due the expire or traffic limit") } @@ -101,6 +102,29 @@ func (s *XrayService) GetXrayConfig() (*xray.Config, error) { } } + + // clear client config for additional parameters + indexDecrease := 0 + for index, client := range clients { + + c := client.(map[string]interface{}) + + // remove disabled clients + if c["enable"] != nil { + if enable, ok := c["enable"].(bool); ok && !enable { + clients = RemoveIndex(clients, index-indexDecrease) + indexDecrease++ + continue + } + } + for key := range c { + if key != "email" && key != "id" && key != "password" && key != "flow" && key != "alterId" { + delete(c, key) + } + } + clients[index-indexDecrease] = interface{}(c) + } + settings["clients"] = clients modifiedSettings, err := json.Marshal(settings) if err != nil {