mirror of
https://github.com/netbirdio/netbird.git
synced 2025-08-19 11:20:18 +02:00
Fix expiration logic
After the user delete feature PR, this logic is broken
This commit is contained in:
@@ -935,17 +935,33 @@ func (am *DefaultAccountManager) peerLoginExpirationJob(accountID string) func()
|
|||||||
return account.GetNextPeerExpiration()
|
return account.GetNextPeerExpiration()
|
||||||
}
|
}
|
||||||
|
|
||||||
expiredPeers := account.GetExpiredPeers()
|
|
||||||
var peerIDs []string
|
var peerIDs []string
|
||||||
for _, peer := range expiredPeers {
|
for _, peer := range account.GetExpiredPeers() {
|
||||||
|
if peer.Status.LoginExpired {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
peerIDs = append(peerIDs, peer.ID)
|
peerIDs = append(peerIDs, peer.ID)
|
||||||
|
peer.MarkLoginExpired(true)
|
||||||
|
account.UpdatePeer(peer)
|
||||||
|
err = am.Store.SavePeerStatus(account.Id, peer.ID, *peer.Status)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("failed saving peer status while expiring peer %s", peer.ID)
|
||||||
|
return account.GetNextPeerExpiration()
|
||||||
|
}
|
||||||
|
am.storeEvent(peer.UserID, peer.ID, account.Id, activity.PeerLoginExpired, peer.EventMeta(am.GetDNSDomain()))
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Debugf("discovered %d peers to expire for account %s", len(peerIDs), account.Id)
|
log.Debugf("discovered %d peers to expire for account %s", len(peerIDs), account.Id)
|
||||||
|
|
||||||
if err := am.expireAndUpdatePeers(account, expiredPeers); err != nil {
|
if len(peerIDs) != 0 {
|
||||||
log.Errorf("failed updating account peers while expiring peers for account %s", account.Id)
|
// this will trigger peer disconnect from the management service
|
||||||
return account.GetNextPeerExpiration()
|
am.peersUpdateManager.CloseChannels(peerIDs)
|
||||||
|
err = am.updateAccountPeers(account)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("failed updating account peers while expiring peers for account %s", accountID)
|
||||||
|
return account.GetNextPeerExpiration()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return account.GetNextPeerExpiration()
|
return account.GetNextPeerExpiration()
|
||||||
|
Reference in New Issue
Block a user