From f3e4f3b0d040a92da0ff26100dca207cdba8c210 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Sat, 1 Jun 2024 17:47:51 +0800 Subject: [PATCH] fix(keystone): avoid panic (#20433) --- pkg/keystone/models/identity_provider.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/keystone/models/identity_provider.go b/pkg/keystone/models/identity_provider.go index fad44f3cd9..70ceeee527 100644 --- a/pkg/keystone/models/identity_provider.go +++ b/pkg/keystone/models/identity_provider.go @@ -1051,6 +1051,7 @@ func (self *SIdentityProvider) SyncOrCreateUser(ctx context.Context, extId strin return nil, errors.Wrap(err, "db.NewModelObject") } user := userObj.(*SUser) + user.SetModelManager(UserManager, user) q := UserManager.RawQuery().Equals("id", userId) err = q.First(user) if err != nil && err != sql.ErrNoRows { @@ -1083,9 +1084,6 @@ func (self *SIdentityProvider) SyncOrCreateUser(ctx context.Context, extId strin return nil, errors.Wrap(err, "Update") } } else { - if syncUserInfo != nil { - syncUserInfo(user) - } if enableDefault { user.Enabled = tristate.True } else { @@ -1109,6 +1107,9 @@ func (self *SIdentityProvider) SyncOrCreateUser(ctx context.Context, extId strin if err != nil { return nil, errors.Wrap(err, "Insert") } + if syncUserInfo != nil { + syncUserInfo(user) + } } return user, nil }