Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMHSanaei <ho3ein.sanaei@gmail.com>2023-04-09 22:43:18 +0300
committerMHSanaei <ho3ein.sanaei@gmail.com>2023-04-09 22:43:18 +0300
commite1da43053d23c995bcd6e7267cb20042398cd64f (patch)
tree08c4c371ba070ef765ec2be83270ee6032e54774 /web/service/xray.go
parent3bb90cbf2463b31c6a921f7cd75cf32edd3a37f0 (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.go27
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