diff options
| author | MHSanaei <ho3ein.sanaei@gmail.com> | 2023-04-09 22:43:18 +0300 |
|---|---|---|
| committer | MHSanaei <ho3ein.sanaei@gmail.com> | 2023-04-09 22:43:18 +0300 |
| commit | e1da43053d23c995bcd6e7267cb20042398cd64f (patch) | |
| tree | 08c4c371ba070ef765ec2be83270ee6032e54774 /web/service/xray.go | |
| parent | 3bb90cbf2463b31c6a921f7cd75cf32edd3a37f0 (diff) | |
alireza update pack
Co-Authored-By: Alireza Ahmadi <alireza7@gmail.com>
Diffstat (limited to 'web/service/xray.go')
| -rw-r--r-- | web/service/xray.go | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/web/service/xray.go b/web/service/xray.go index d9e65f8d..6e63d2d1 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,7 +102,27 @@ func (s *XrayService) GetXrayConfig() (*xray.Config, error) { } } - settings["clients"] = clients + + // clear client config for additional parameters + var final_clients []interface{} + for _, client := range clients { + + c := client.(map[string]interface{}) + + if c["enable"] != nil { + if enable, ok := c["enable"].(bool); ok && !enable { + continue + } + } + for key := range c { + if key != "email" && key != "id" && key != "password" && key != "flow" && key != "alterId" { + delete(c, key) + } + } + final_clients = append(final_clients, interface{}(c)) + } + + settings["clients"] = final_clients modifiedSettings, err := json.Marshal(settings) if err != nil { return nil, err |
