get rid of direct get account calls

This commit is contained in:
crn4
2025-10-02 14:41:58 +02:00
parent 841bc7564a
commit fd9e21a5f3
3 changed files with 17 additions and 21 deletions

View File

@@ -1495,19 +1495,8 @@ func (am *DefaultAccountManager) SyncUserJWTGroups(ctx context.Context, userAuth
}
if removedGroupAffectsPeers || newGroupsAffectsPeers {
if am.expNewNetworkMap {
account, err := am.Store.GetAccount(ctx, userAuth.AccountId)
if err != nil {
return err
}
validatedPeers, err := am.integratedPeerValidator.GetValidatedPeers(ctx, account.Id, maps.Values(account.Groups), maps.Values(account.Peers), account.Settings.Extra)
if err != nil {
return err
}
am.recalculateNetworkMapCache(account, validatedPeers)
if err := am.RecalculateNetworkMapCache(ctx, userAuth.AccountId); err != nil {
return err
}
log.WithContext(ctx).Tracef("user %s: JWT group membership changed, updating account peers", userAuth.UserId)

View File

@@ -25,7 +25,7 @@ func (am *DefaultAccountManager) getAccountFromHolder(accountID string) *types.A
if a != nil {
return a
}
account, err := am.Store.GetAccount(context.Background(), accountID)
account, err := am.requestBuffer.GetAccountWithBackpressure(context.Background(), accountID)
if err != nil {
return nil
}

View File

@@ -395,7 +395,7 @@ func (am *DefaultAccountManager) DeletePeer(ctx context.Context, accountID, peer
}
if updateAccountPeers && am.expNewNetworkMap {
account, err := am.Store.GetAccount(ctx, accountID)
account, err := am.requestBuffer.GetAccountWithBackpressure(ctx, accountID)
if err != nil {
return err
}
@@ -727,7 +727,7 @@ func (am *DefaultAccountManager) AddPeer(ctx context.Context, accountID, setupKe
am.StoreEvent(ctx, opEvent.InitiatorID, opEvent.TargetID, opEvent.AccountID, opEvent.Activity, opEvent.Meta)
if am.expNewNetworkMap {
account, err := am.Store.GetAccount(ctx, accountID)
account, err := am.requestBuffer.GetAccountWithBackpressure(ctx, accountID)
if err != nil {
return nil, nil, nil, err
}
@@ -1228,11 +1228,18 @@ func (am *DefaultAccountManager) checkIfUserOwnsPeer(ctx context.Context, accoun
// Should be called when changes have to be synced to peers.
func (am *DefaultAccountManager) UpdateAccountPeers(ctx context.Context, accountID string) {
log.WithContext(ctx).Tracef("updating peers for account %s from %s", accountID, util.GetCallerName())
account, err := am.requestBuffer.GetAccountWithBackpressure(ctx, accountID)
if err != nil {
log.WithContext(ctx).Errorf("failed to send out updates to peers. failed to get account: %v", err)
return
var (
account *types.Account
err error
)
if am.expNewNetworkMap {
account = am.getAccountFromHolder(accountID)
} else {
account, err = am.requestBuffer.GetAccountWithBackpressure(ctx, accountID)
if err != nil {
log.WithContext(ctx).Errorf("failed to send out updates to peers. failed to get account: %v", err)
return
}
}
globalStart := time.Now()