From 2c1eeb89e840b71a57a60895098993edaeba3235 Mon Sep 17 00:00:00 2001 From: rainzm Date: Thu, 14 Jan 2021 17:13:43 +0800 Subject: [PATCH] fix(keystone): clear failed auth when enable user --- pkg/keystone/models/users.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkg/keystone/models/users.go b/pkg/keystone/models/users.go index 8a7ab324b7..798a1ec35f 100644 --- a/pkg/keystone/models/users.go +++ b/pkg/keystone/models/users.go @@ -735,6 +735,19 @@ func (user *SUser) PostUpdate(ctx context.Context, userCred mcclient.TokenCreden } logclient.AddActionLogWithContext(ctx, user, logclient.ACT_UPDATE_PASSWORD, nil, userCred, true) } + if enabled, _ := data.Bool("enabled"); enabled { + localUser, err := LocalUserManager.fetchLocalUser(user.Id, user.DomainId, 0) + if err != nil { + if err == sql.ErrNoRows { + return + } + log.Errorf("unable to fetch localUser of user %q in domain %q: %v", user.Id, user.DomainId, err) + return + } + if err = localUser.ClearFailedAuth(); err != nil { + log.Errorf("unable to clear failed auth: %v", err) + } + } } func (user *SUser) ValidateDeleteCondition(ctx context.Context) error {