bug fix: enable

This commit is contained in:
mhsanaei 2025-09-16 14:57:31 +02:00
parent c4871ef8fe
commit f137b1af76
No known key found for this signature in database
GPG key ID: D875CD086CF668A0

View file

@ -1272,7 +1272,7 @@ func (s *InboundService) AddClientStat(tx *gorm.DB, inboundId int, client *model
clientTraffic.Email = client.Email clientTraffic.Email = client.Email
clientTraffic.Total = client.TotalGB clientTraffic.Total = client.TotalGB
clientTraffic.ExpiryTime = client.ExpiryTime clientTraffic.ExpiryTime = client.ExpiryTime
clientTraffic.Enable = true clientTraffic.Enable = client.Enable
clientTraffic.Up = 0 clientTraffic.Up = 0
clientTraffic.Down = 0 clientTraffic.Down = 0
clientTraffic.Reset = client.Reset clientTraffic.Reset = client.Reset
@ -1285,7 +1285,7 @@ func (s *InboundService) UpdateClientStat(tx *gorm.DB, email string, client *mod
result := tx.Model(xray.ClientTraffic{}). result := tx.Model(xray.ClientTraffic{}).
Where("email = ?", email). Where("email = ?", email).
Updates(map[string]any{ Updates(map[string]any{
"enable": true, "enable": client.Enable,
"email": client.Email, "email": client.Email,
"total": client.TotalGB, "total": client.TotalGB,
"expiry_time": client.ExpiryTime, "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) { func (s *InboundService) GetClientTrafficByEmail(email string) (traffic *xray.ClientTraffic, err error) {
db := database.GetDB() // Prefer retrieving along with client to reflect actual enabled state from inbound settings
var traffics []*xray.ClientTraffic t, client, err := s.GetClientByEmail(email)
err = db.Model(xray.ClientTraffic{}).Where("email = ?", email).Find(&traffics).Error
if err != nil { if err != nil {
logger.Warningf("Error retrieving ClientTraffic with email %s: %v", email, err) logger.Warningf("Error retrieving ClientTraffic with email %s: %v", email, err)
return nil, err return nil, err
} }
if len(traffics) > 0 { if t != nil && client != nil {
return traffics[0], nil // Ensure enable mirrors the client's current enable flag in settings
t.Enable = client.Enable
return t, nil
} }
return nil, nil return nil, nil
} }
@ -1983,6 +1982,12 @@ func (s *InboundService) GetClientTrafficByID(id string) ([]xray.ClientTraffic,
logger.Debug(err) logger.Debug(err)
return nil, 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 return traffics, err
} }