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
path: root/web
diff options
context:
space:
mode:
authormhsanaei <ho3ein.sanaei@gmail.com>2025-09-16 15:57:31 +0300
committermhsanaei <ho3ein.sanaei@gmail.com>2025-09-16 15:57:31 +0300
commitf137b1af76c0a6206ea792a39467646f73b043cb (patch)
tree33d3f176bcd8679d642a62ae73c2f7ad43ebe57f /web
parentc4871ef8fe7f57ddb4db94cdea7a85330e749185 (diff)
bug fix: enable
Diffstat (limited to 'web')
-rw-r--r--web/service/inbound.go23
1 files changed, 14 insertions, 9 deletions
diff --git a/web/service/inbound.go b/web/service/inbound.go
index 9d2e09dd..d19668af 100644
--- a/web/service/inbound.go
+++ b/web/service/inbound.go
@@ -1272,7 +1272,7 @@ func (s *InboundService) AddClientStat(tx *gorm.DB, inboundId int, client *model
clientTraffic.Email = client.Email
clientTraffic.Total = client.TotalGB
clientTraffic.ExpiryTime = client.ExpiryTime
- clientTraffic.Enable = true
+ clientTraffic.Enable = client.Enable
clientTraffic.Up = 0
clientTraffic.Down = 0
clientTraffic.Reset = client.Reset
@@ -1285,7 +1285,7 @@ func (s *InboundService) UpdateClientStat(tx *gorm.DB, email string, client *mod
result := tx.Model(xray.ClientTraffic{}).
Where("email = ?", email).
Updates(map[string]any{
- "enable": true,
+ "enable": client.Enable,
"email": client.Email,
"total": client.TotalGB,
"expiry_time": client.ExpiryTime,
@@ -1937,18 +1937,17 @@ func (s *InboundService) GetClientTrafficTgBot(tgId int64) ([]*xray.ClientTraffi
}
func (s *InboundService) GetClientTrafficByEmail(email string) (traffic *xray.ClientTraffic, err error) {
- db := database.GetDB()
- var traffics []*xray.ClientTraffic
-
- err = db.Model(xray.ClientTraffic{}).Where("email = ?", email).Find(&traffics).Error
+ // Prefer retrieving along with client to reflect actual enabled state from inbound settings
+ t, client, err := s.GetClientByEmail(email)
if err != nil {
logger.Warningf("Error retrieving ClientTraffic with email %s: %v", email, err)
return nil, err
}
- if len(traffics) > 0 {
- return traffics[0], nil
+ if t != nil && client != nil {
+ // Ensure enable mirrors the client's current enable flag in settings
+ t.Enable = client.Enable
+ return t, nil
}
-
return nil, nil
}
@@ -1983,6 +1982,12 @@ func (s *InboundService) GetClientTrafficByID(id string) ([]xray.ClientTraffic,
logger.Debug(err)
return nil, err
}
+ // Reconcile enable flag with client settings per email to avoid stale DB value
+ for i := range traffics {
+ if ct, client, e := s.GetClientByEmail(traffics[i].Email); e == nil && ct != nil && client != nil {
+ traffics[i].Enable = client.Enable
+ }
+ }
return traffics, err
}