diff options
| author | mhsanaei <ho3ein.sanaei@gmail.com> | 2025-09-16 15:57:31 +0300 |
|---|---|---|
| committer | mhsanaei <ho3ein.sanaei@gmail.com> | 2025-09-16 15:57:31 +0300 |
| commit | f137b1af76c0a6206ea792a39467646f73b043cb (patch) | |
| tree | 33d3f176bcd8679d642a62ae73c2f7ad43ebe57f /web | |
| parent | c4871ef8fe7f57ddb4db94cdea7a85330e749185 (diff) | |
bug fix: enable
Diffstat (limited to 'web')
| -rw-r--r-- | web/service/inbound.go | 23 |
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 } |
