diff --git a/management/server/account.go b/management/server/account.go index 9a1ca9866..e441b186c 100644 --- a/management/server/account.go +++ b/management/server/account.go @@ -473,12 +473,7 @@ func (am *DefaultAccountManager) peerLoginExpirationJob(ctx context.Context, acc return peerSchedulerRetryInterval, true } - var peerIDs []string - for _, peer := range expiredPeers { - peerIDs = append(peerIDs, peer.ID) - } - - log.WithContext(ctx).Debugf("discovered %d peers to expire for account %s", len(peerIDs), accountID) + log.WithContext(ctx).Debugf("discovered %d peers to expire for account %s", len(expiredPeers), accountID) if err := am.expireAndUpdatePeers(ctx, accountID, expiredPeers); err != nil { log.WithContext(ctx).Errorf("failed updating account peers while expiring peers for account %s", accountID) diff --git a/management/server/peer.go b/management/server/peer.go index f48ba2d15..5eb954cde 100644 --- a/management/server/peer.go +++ b/management/server/peer.go @@ -11,11 +11,12 @@ import ( "sync" "time" - "github.com/netbirdio/netbird/management/server/geolocation" "github.com/rs/xid" log "github.com/sirupsen/logrus" "golang.org/x/exp/maps" + "github.com/netbirdio/netbird/management/server/geolocation" + "github.com/netbirdio/netbird/management/server/idp" "github.com/netbirdio/netbird/management/server/posture" "github.com/netbirdio/netbird/management/server/store" @@ -120,7 +121,6 @@ func (am *DefaultAccountManager) GetPeers(ctx context.Context, accountID, userID // MarkPeerConnected marks peer as connected (true) or disconnected (false) func (am *DefaultAccountManager) MarkPeerConnected(ctx context.Context, peerPubKey string, connected bool, realIP net.IP, accountID string) error { var peer *nbpeer.Peer - var settings *types.Settings var expired bool var err error @@ -130,11 +130,6 @@ func (am *DefaultAccountManager) MarkPeerConnected(ctx context.Context, peerPubK return err } - settings, err = transaction.GetAccountSettings(ctx, store.LockingStrengthShare, accountID) - if err != nil { - return err - } - expired, err = updatePeerStatusAndLocation(ctx, am.geo, transaction, peer, connected, realIP, accountID) return err }) @@ -142,16 +137,6 @@ func (am *DefaultAccountManager) MarkPeerConnected(ctx context.Context, peerPubK return err } - if peer.AddedWithSSOLogin() { - if peer.LoginExpirationEnabled && settings.PeerLoginExpirationEnabled { - am.checkAndSchedulePeerLoginExpiration(ctx, accountID) - } - - if peer.InactivityExpirationEnabled && settings.PeerInactivityExpirationEnabled { - am.checkAndSchedulePeerInactivityExpiration(ctx, accountID) - } - } - if expired { // we need to update other peers because when peer login expires all other peers are notified to disconnect from // the expired one. Here we notify them that connection is now allowed again. @@ -1211,8 +1196,7 @@ func (am *DefaultAccountManager) getNextPeerExpiration(ctx context.Context, acco var nextExpiry *time.Duration for _, peer := range peersWithExpiry { - // consider only connected peers because others will require login on connecting to the management server - if peer.Status.LoginExpired || !peer.Status.Connected { + if peer.Status.LoginExpired { continue } _, duration := peer.LoginExpired(settings.PeerLoginExpiration) diff --git a/management/server/store/sql_store.go b/management/server/store/sql_store.go index 900d81322..62c1c312d 100644 --- a/management/server/store/sql_store.go +++ b/management/server/store/sql_store.go @@ -1307,7 +1307,7 @@ func (s *SqlStore) GetPeersByIDs(ctx context.Context, lockStrength LockingStreng func (s *SqlStore) GetAccountPeersWithExpiration(ctx context.Context, lockStrength LockingStrength, accountID string) ([]*nbpeer.Peer, error) { var peers []*nbpeer.Peer result := s.db.Clauses(clause.Locking{Strength: string(lockStrength)}). - Where("login_expiration_enabled = ? AND user_id IS NOT NULL AND user_id != ''", true). + Where("login_expiration_enabled = ? AND peer_status_login_expired = 0 user_id IS NOT NULL AND user_id != ''", true). Find(&peers, accountIDCondition, accountID) if err := result.Error; err != nil { log.WithContext(ctx).Errorf("failed to get peers with expiration from the store: %s", result.Error)