From d78b7e5d93a6fc5da51a67eab68efa5d6312a75c Mon Sep 17 00:00:00 2001 From: Bethuel Mmbaga Date: Mon, 20 Nov 2023 16:56:21 +0300 Subject: [PATCH] Skip user deletion if the user does not exist in IdP (#1320) --- management/server/user.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/management/server/user.go b/management/server/user.go index 9e280bc6b..b96bf743c 100644 --- a/management/server/user.go +++ b/management/server/user.go @@ -443,10 +443,17 @@ func (am *DefaultAccountManager) deleteRegularUser(account *Account, initiatorUs } if !isNil(am.idpManager) { - err = am.deleteUserFromIDP(targetUserID, account.Id) - if err != nil { - log.Debugf("failed to delete user from IDP: %s", targetUserID) - return err + // Delete if the user already exists in the IdP.Necessary in cases where a user account + // was created where a user account was provisioned but the user did not sign in + _, err = am.idpManager.GetUserDataByID(targetUserID, idp.AppMetadata{WTAccountID: account.Id}) + if err == nil { + err = am.deleteUserFromIDP(targetUserID, account.Id) + if err != nil { + log.Debugf("failed to delete user from IDP: %s", targetUserID) + return err + } + } else { + log.Debugf("skipped deleting user %s from IDP, error: %v", targetUserID, err) } }