diff --git a/management/server/account.go b/management/server/account.go index e1a739229b4..6af0a39d6d5 100644 --- a/management/server/account.go +++ b/management/server/account.go @@ -1223,6 +1223,21 @@ func (am *DefaultAccountManager) lookupUserInCache(userID string, account *Accou } } + user, err := account.FindUser(userID) + if err != nil { + log.Errorf("failed finding user %s in account %s", userID, account.Id) + return nil, err + } + + key := user.IntegrationReference.CacheKey(account.Id, userID) + ud, err := am.externalCacheManager.Get(am.ctx, key) + if err == nil { + log.Errorf("failed to get externalCache for key: %s, error: %s", key, err) + return ud, status.Errorf(status.NotFound, "user %s not found in the IdP", userID) + } + + log.Infof("user %s not found in any cache", userID) + return nil, nil //nolint:nilnil } diff --git a/management/server/user.go b/management/server/user.go index b2e273d9ae4..651488f2b51 100644 --- a/management/server/user.go +++ b/management/server/user.go @@ -890,18 +890,6 @@ func (am *DefaultAccountManager) SaveOrAddUser(accountID, initiatorUserID string if err != nil { return nil, err } - if userData == nil { - // lets check external cache - key := newUser.IntegrationReference.CacheKey(account.Id, newUser.Id) - log.Debugf("looking up user %s of account %s in external cache", key, account.Id) - info, err := am.externalCacheManager.Get(am.ctx, key) - if err != nil { - log.Infof("Get ExternalCache for key: %s, error: %s", key, err) - return nil, status.Errorf(status.NotFound, "user %s not found in the IdP", newUser.Id) - } - - return newUser.ToUserInfo(info) - } return newUser.ToUserInfo(userData) } return newUser.ToUserInfo(nil)